org.olat.instantMessaging
Interface ClientManager

All Known Implementing Classes:
ClientManagerImpl

public interface ClientManager


Field Summary
static java.lang.String PROVIDER_INSTANT_MESSAGING
          instant messaging needs its own password
 
Method Summary
 void addMessageListener(java.lang.String username)
           
 void addPresenceListener(java.lang.String username)
           
 org.jivesoftware.smack.Chat createChat(java.lang.String username, java.lang.String chatPartnerJid, Controller controller)
           
 void deregisterControllerListener(java.lang.String username, Controller controller)
           
 void destroyInstantMessagingClient(java.lang.String username)
          When a user logs out of olat we logout the client from the jabber server and free the ressource
 java.util.Map<java.lang.String,InstantMessagingClient> getClients()
          returns the map (its iterator is safe)
 InstantMessagingClient getInstantMessagingClient(java.lang.String username)
          Creates an new instant messaging client and connects automatically to the server.
 java.lang.String getInstantMessagingCredentialsForUser(java.lang.String username)
          Looks if user has credentials for IM.
 GenericEventListener getRegisteredEventListeners(java.lang.String username, Controller controller)
           
 boolean hasActiveInstantMessagingClient(java.lang.String username)
          Check whether a user has already an IM client running Use this method when fetching clients outside a controller constructor as users may have several sessions to avoid reconnection of an duplicate session
 void registerEventListener(java.lang.String username, GenericEventListener listener, boolean listenToAllMessages)
           
 void sendPresenceEvent(org.jivesoftware.smack.packet.Presence.Type type, java.lang.String username)
          helper method to trigger a presence update even if the server does not send a presence packet itself (e.g.
 

Field Detail

PROVIDER_INSTANT_MESSAGING

static final java.lang.String PROVIDER_INSTANT_MESSAGING
instant messaging needs its own password

See Also:
Constant Field Values
Method Detail

getInstantMessagingClient

InstantMessagingClient getInstantMessagingClient(java.lang.String username)
Creates an new instant messaging client and connects automatically to the server. This method should only be used in a constructor and not be triggered by GUI events, otherwise clients that lost connections may get recreated again.

Parameters:
username -
Returns:
JabberClient even if IM service is down

hasActiveInstantMessagingClient

boolean hasActiveInstantMessagingClient(java.lang.String username)
Check whether a user has already an IM client running Use this method when fetching clients outside a controller constructor as users may have several sessions to avoid reconnection of an duplicate session

Parameters:
username -
Returns:

registerEventListener

void registerEventListener(java.lang.String username,
                           GenericEventListener listener,
                           boolean listenToAllMessages)
Parameters:
username -
listener -
listenToAllMessages - - only the main controller needs to listen to all messages

getRegisteredEventListeners

GenericEventListener getRegisteredEventListeners(java.lang.String username,
                                                 Controller controller)

deregisterControllerListener

void deregisterControllerListener(java.lang.String username,
                                  Controller controller)

createChat

org.jivesoftware.smack.Chat createChat(java.lang.String username,
                                       java.lang.String chatPartnerJid,
                                       Controller controller)

addMessageListener

void addMessageListener(java.lang.String username)
Parameters:
username -

addPresenceListener

void addPresenceListener(java.lang.String username)
Parameters:
username -

sendPresenceEvent

void sendPresenceEvent(org.jivesoftware.smack.packet.Presence.Type type,
                       java.lang.String username)
helper method to trigger a presence update even if the server does not send a presence packet itself (e.g. entering a test but no other buddies are online)

Parameters:
username -

destroyInstantMessagingClient

void destroyInstantMessagingClient(java.lang.String username)
When a user logs out of olat we logout the client from the jabber server and free the ressource

Parameters:
username -

getClients

java.util.Map<java.lang.String,InstantMessagingClient> getClients()
returns the map (its iterator is safe)

Returns:
map

getInstantMessagingCredentialsForUser

java.lang.String getInstantMessagingCredentialsForUser(java.lang.String username)
Looks if user has credentials for IM. If not (auth == null) a new accounts with a random generated password gets created otherwise the password gets returned.

Parameters:
username - the OLAT username
Returns:
the password used for instant messaging