package org.limewire.friend.api;
import org.limewire.concurrent.ListeningFuture;
/**
* Describes an interface for managing XMPP connections. Only one connection
* can be logged in at a time.
*/
public interface FriendConnectionFactory {
/**
* Attempts to log in a connection using the specified configuration.
* Any existing connections will be logged out first.
*
* @param configuration the XMPPConnectionConfiguration to use; can not be null
* @return a {@link ListeningFuture} of {@link FriendConnection}
*/
public ListeningFuture<FriendConnection> login(FriendConnectionConfiguration configuration);
public void register(FriendConnectionFactoryRegistry registry);
ListeningFuture<String> requestLoginUrl(FriendConnectionConfiguration configuration);
}