package pl.radical.open.gg;
import pl.radical.open.gg.event.SessionStateListener;
import pl.radical.open.gg.packet.dicts.SessionState;
/**
* @author <a href="mailto:mati@sz.home.pl">Mateusz Szczap</a>
*/
public interface ISession {
/**
* Returns state of this session.
*
* @return <code>SessionState</code>
*/
SessionState getSessionState();
IGGConfiguration getGGConfiguration();
IConnectionService getConnectionService();
ILoginService getLoginService();
IMessageService getMessageService();
IPresenceService getPresenceService();
IContactListService getContactListService();
IPublicDirectoryService getPublicDirectoryService();
IRegistrationService getRegistrationService();
void addSessionStateListener(SessionStateListener sessionStateListener);
void removeSessionStateListener(SessionStateListener sessionStateListener);
}