Package tigase.xmpp
Class XMPPSession
- java.lang.Object
-
- tigase.xmpp.XMPPSession
-
public class XMPPSession extends Object
XMPPSession class is a container class for allXMPPResourceConnectionobjects for particular user (i.e. all user's connected resources)
-
-
Constructor Summary
Constructors Constructor Description XMPPSession(String username)Creates a newXMPPSessioninstance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddResourceConnection(XMPPResourceConnection conn)This method is called each time the resource is set for connection.ObjectcomputeCommonSessionDataIfAbsent(String key, Function<String,Object> valueFactory)List<XMPPResourceConnection>getActiveResources()Method returns a List of allXMPPResourceConnectionobjects related to thisXMPPSessionobjectList<XMPPResourceConnection>getActiveResourcesClone()Method returns a cloned List of allXMPPResourceConnectionobjects related to thisXMPPSessionobjectintgetActiveResourcesSize()Method returns number of allXMPPResourceConnectionobjects related to thisXMPPSessionobjectObjectgetCommonSessionData(String key)Method returns a data for particularkeywhich is common to all resource connections within thisXMPPSession
related to thisXMPPSessionobjectJID[]getConnectionIds()Method returns an array of all ConnectionIDs related to thisXMPPSessionJID[]getJIDs()Method returns an array of all FullJIDs related to thisXMPPSessionlonggetLiveTime()Method returns time of how long the session is active (in milliseconds)longgetPacketsCounter()Returns number of processed packet for the given user session (i.e.XMPPResourceConnectiongetResourceConnection(JID jid)Method returnsXMPPResourceConnectionfor particular FullJID.XMPPResourceConnectiongetResourceForConnectionId(JID connectionId)Method returnsXMPPResourceConnectionfor particular ConnectionID.XMPPResourceConnectiongetResourceForJID(JID jid)Method returnsXMPPResourceConnectionfor particular FullJID (usingresourcename as determinant.XMPPResourceConnectiongetResourceForResource(String resource)Method returnsXMPPResourceConnectionfor particularresource.StringgetUserName()Method returns username that is related to thisXMPPSession(i.e.voidincPacketsCounter()Increments counter of processed packet for the given user session (i.e.protected voidputCommonSessionData(String key, Object value)Method used to store data common for all connections of the user.protected ObjectputCommonSessionDataIfAbsent(String key, Object value)protected ObjectremoveCommonSessionData(String key)Method used to remove data common for all connections of the user.voidremoveResourceConnection(XMPPResourceConnection conn)Removes particularXMPPResourceConnectionuser's resource connection from the list of all active user connections within givenXMPPSessionand detachesXMPPSessionfrom the removedXMPPResourceConnectionvoidstreamClosed(XMPPResourceConnection conn)Method is called upon closing stream connection and removes particularXMPPResourceConnectionStringtoString()
-
-
-
Constructor Detail
-
XMPPSession
public XMPPSession(String username)
Creates a newXMPPSessioninstance.- Parameters:
username- - localpart of user's JID
-
-
Method Detail
-
addResourceConnection
public void addResourceConnection(XMPPResourceConnection conn) throws TigaseStringprepException
This method is called each time the resource is set for connection.
Method performs checking whether there is no collision of the resources.- Parameters:
conn-XMPPResourceConnectionthat is being added.- Throws:
TigaseStringprepException
-
incPacketsCounter
public void incPacketsCounter()
Increments counter of processed packet for the given user session (i.e. all users connections in total)
-
removeResourceConnection
public void removeResourceConnection(XMPPResourceConnection conn)
Removes particularXMPPResourceConnectionuser's resource connection from the list of all active user connections within givenXMPPSessionand detachesXMPPSessionfrom the removedXMPPResourceConnection
-
streamClosed
public void streamClosed(XMPPResourceConnection conn)
Method is called upon closing stream connection and removes particularXMPPResourceConnection- Parameters:
conn- -XMPPResourceConnectionfor which stream was closed.
-
getActiveResources
public List<XMPPResourceConnection> getActiveResources()
Method returns a List of allXMPPResourceConnectionobjects related to thisXMPPSessionobject
-
getActiveResourcesClone
public List<XMPPResourceConnection> getActiveResourcesClone()
Method returns a cloned List of allXMPPResourceConnectionobjects related to thisXMPPSessionobject
-
getActiveResourcesSize
public int getActiveResourcesSize()
Method returns number of allXMPPResourceConnectionobjects related to thisXMPPSessionobject
-
getCommonSessionData
public Object getCommonSessionData(String key)
Method returns a data for particularkeywhich is common to all resource connections within thisXMPPSession
related to thisXMPPSessionobject- Parameters:
key- for which data should be returned
-
getConnectionIds
public JID[] getConnectionIds()
Method returns an array of all ConnectionIDs related to thisXMPPSession
-
getJIDs
public JID[] getJIDs()
Method returns an array of all FullJIDs related to thisXMPPSession
-
getLiveTime
public long getLiveTime()
Method returns time of how long the session is active (in milliseconds)
-
getPacketsCounter
public long getPacketsCounter()
Returns number of processed packet for the given user session (i.e. all users connections in total)
-
getResourceConnection
public XMPPResourceConnection getResourceConnection(JID jid)
Method returnsXMPPResourceConnectionfor particular FullJID. In case there are no sessionsnullis returned, in case there is more than one active session a session with the highest priority is returned. In case there are still more than one connections with the same priority then the latest active one is returned.- Parameters:
jid- FullJID for which aXMPPResourceConnectionshould be returned
-
getResourceForConnectionId
public XMPPResourceConnection getResourceForConnectionId(JID connectionId)
Method returnsXMPPResourceConnectionfor particular ConnectionID. In case there is no session that match given ConnectionID thennullis returned.- Parameters:
connectionId- ConnectionID for whichXMPPResourceConnectionshould be returned
-
getResourceForJID
public XMPPResourceConnection getResourceForJID(JID jid)
Method returnsXMPPResourceConnectionfor particular FullJID (usingresourcename as determinant. In case there is no session that match -nullis returned.- Parameters:
jid- FullJID for which aXMPPResourceConnectionshould be returned
-
getResourceForResource
public XMPPResourceConnection getResourceForResource(String resource)
Method returnsXMPPResourceConnectionfor particularresource. In case there is no session that match -nullis returned.- Parameters:
resource- resource string for which aXMPPResourceConnectionshould be returned
-
getUserName
public String getUserName()
Method returns username that is related to thisXMPPSession(i.e. mostly localpart of JID)
-
computeCommonSessionDataIfAbsent
public Object computeCommonSessionDataIfAbsent(String key, Function<String,Object> valueFactory)
-
putCommonSessionData
protected void putCommonSessionData(String key, Object value)
Method used to store data common for all connections of the user.- Parameters:
key- under which data should be storevalue- data to be stored
-
putCommonSessionDataIfAbsent
protected Object putCommonSessionDataIfAbsent(String key, Object value)
-
-