Class CacheContenerV2

java.lang.Object
tigase.server.cluster.strategy.CacheContenerV2
All Implemented Interfaces:
CacheContenerIfc, tigase.sys.OnlineJidsReporter

public class CacheContenerV2 extends Object implements tigase.sys.OnlineJidsReporter, CacheContenerIfc
Author:
Artur Hefczyc Created Mar 15, 2011
  • Constructor Details

    • CacheContenerV2

      public CacheContenerV2()
  • Method Details

    • connectionsSize

      public int connectionsSize()
      Returns number of all cached connections (all/total CIDs for all connected users)
      Returns:
      number of all cached CIDs
    • containsJid

      public boolean containsJid(tigase.xmpp.jid.BareJID jid)
      Specified by:
      containsJid in interface CacheContenerIfc
      Specified by:
      containsJid in interface tigase.sys.OnlineJidsReporter
    • containsJidLocally

      public boolean containsJidLocally(tigase.xmpp.jid.BareJID jid)
      Specified by:
      containsJidLocally in interface tigase.sys.OnlineJidsReporter
    • containsJidLocally

      public boolean containsJidLocally(tigase.xmpp.jid.JID jid)
      Specified by:
      containsJidLocally in interface tigase.sys.OnlineJidsReporter
    • mapSize

      public int mapSize()
      Return number of connected users
      Returns:
      number of connected users
    • needsSync

      public boolean needsSync()
      Allow obtaining information whether cache needs synching with other nodes.
      Returns:
      true if cache is out of synch, false otherwise.
    • setSync

      public void setSync(boolean sync)
      Set the state of synchronisation.
      Specified by:
      setSync in interface CacheContenerIfc
      Parameters:
      sync - boolean value denoting sync state.
    • removeAllForNode

      public void removeAllForNode(tigase.xmpp.jid.JID node)
      Method removes all cached connections which were related to the given node (e.g. when the node was disconnected) as well as decreases count of all connections stored in cache.
      Specified by:
      removeAllForNode in interface CacheContenerIfc
      Parameters:
      node - JID of the node for which cached items will be removed.
    • updatePresence

      public void updatePresence(tigase.xml.Element presence, ConnectionRecordExt rec)
      Method updates given connection in the cache with the information about presence for the given connection.
      Parameters:
      presence - Element containing presence information
      rec - ConnectionRecordExt for which presence should be updated
    • userDisconnected

      public void userDisconnected(ConnectionRecordExt rec)
      Method responsible for user disconnection events. Removes given connection record from the cache and decrease counter of all connections.
      Specified by:
      userDisconnected in interface CacheContenerIfc
      Parameters:
      rec - ConnectionRecordExt for which presence should be updated
    • usersConnected

      public void usersConnected(ConnectionRecordExt... recs)
      Method responsible for user connection events. Adds given connection record to the cache and increases counters of both all connections and number of user JIDs in cache..
      Specified by:
      usersConnected in interface CacheContenerIfc
      Parameters:
      recs - ConnectionRecordExt for which presence should be updated
    • userChangedConnId

      public void userChangedConnId(tigase.xmpp.jid.BareJID userId, tigase.xmpp.jid.JID oldConnectionId, tigase.xmpp.jid.JID newConnectionId)
      Method responsible for replacing used conn id by user connection/resource. In fact it removes connection using old connection id from connection cache, updates internal value of connection id to new connection id and adds it to cache using new connection id as a key.

      This happens during stream resumption as connection id changes for session for which stream is resumed.

      Parameters:
      userId - - bare jid of user
      oldConnectionId - - connection id which was changed
      newConnectionId - - connection id which replaced old connection id
    • getConnectionIdsForJid

      public tigase.xmpp.jid.JID[] getConnectionIdsForJid(tigase.xmpp.jid.BareJID jid)
      Specified by:
      getConnectionIdsForJid in interface tigase.sys.OnlineJidsReporter
    • getConnectionRecord

      public ConnectionRecordExt getConnectionRecord(tigase.xmpp.jid.JID jid)
      Retrieves a ConnectionRecordExt for the particular, specific JID
      Specified by:
      getConnectionRecord in interface CacheContenerIfc
      Parameters:
      jid - for which ConnectionRecordExt should be retrieved
      Returns:
      ConnectionRecordExt for the given JID
    • getConnectionRecords

      public Set<ConnectionRecordExt> getConnectionRecords(tigase.xmpp.jid.BareJID bareJID)
      Method retrieves all ConnectionRecordExt records for the particular BareJID
      Parameters:
      bareJID - for which all ConnectionRecordExt should be retrieved
      Returns:
      Set containing all ConnectionRecordExt objects for the given JID
    • getInternalData

      public Object getInternalData()
      Method allows retrieval internal structure underlying cache.
      Returns:
      Object with internal structure of underlying cache.
    • getNodesForJid

      public List<tigase.xmpp.jid.JID> getNodesForJid(tigase.xmpp.jid.JID jid)
      Method retrieves all nodes on which particular user has it's connections.
      Parameters:
      jid - for which list of cluster nodes should be returned.
      Returns:
      list of cluster nodes on which user has it's connections.
    • hasCompleteJidsInfo

      public boolean hasCompleteJidsInfo()
      Specified by:
      hasCompleteJidsInfo in interface tigase.sys.OnlineJidsReporter