tigase.cluster
Interface ClusteringStrategyIfc

All Superinterfaces:
OnlineJidsReporter
All Known Implementing Classes:
SMNonCachingAllNodes

public interface ClusteringStrategyIfc
extends OnlineJidsReporter

Created: May 2, 2009 4:36:03 PM

Version:
$Rev: 2021 $
Author:
Artur Hefczyc

Method Summary
 List<tigase.xmpp.JID> getAllNodes()
          The method retutns all cluster nodes currently connected to the cluster.
 Map<String,Object> getDefaults(Map<String,Object> params)
          This method is used for configuration purpose.
 List<tigase.xmpp.JID> getNodesForJid(tigase.xmpp.JID jid)
          Returns a List of all cluster nodes on which the given user session can exist.
 void getStatistics(StatisticsList list)
          Add the strategy statistics to the List.
 boolean needsSync()
          This method returns 'true' if it needs online users syncronization upon the node connection to the cluster.
 void nodeConnected(tigase.xmpp.JID node)
          This is a handler method which is called when a new node connects to the cluster.
 void nodeDisconnected(tigase.xmpp.JID node)
          This is a handler method which is called when a node disconnects from the cluster.
 void setProperties(Map<String,Object> props)
          Method used to pass configuration parameters to the class.
 void userDisconnected(tigase.xmpp.JID node, Queue<Packet> results, tigase.xmpp.JID jid)
          This is a handler method which is called when a user disconnects from some node in the cluster.
 void usersConnected(tigase.xmpp.JID node, Queue<Packet> results, tigase.xmpp.JID... jids)
          This is a handler method which is called when a user connects to some node in the cluster.
 
Methods inherited from interface tigase.sys.OnlineJidsReporter
containsJid, getConnectionIdsForJid, hasCompleteJidsInfo
 

Method Detail

getAllNodes

List<tigase.xmpp.JID> getAllNodes()
The method retutns all cluster nodes currently connected to the cluster.

Returns:
List of all cluster nodes currently connected to the cluster.

getDefaults

Map<String,Object> getDefaults(Map<String,Object> params)
This method is used for configuration purpose. Following the convention used in the Tigase project this method is supposed to provide configuration defaults. All parameters which exist in configuration file overwrite corresponding default parameters. If some parameters are missing in configuration file defaults are used then. A compiled set of parameters is then passed to setProperties method.

Parameters:
params - a Map with properties loaded from init.properties file which should be used for generating defaults.
Returns:
a Map with all the class default configuration parameters.

getNodesForJid

List<tigase.xmpp.JID> getNodesForJid(tigase.xmpp.JID jid)
Returns a List of all cluster nodes on which the given user session can exist. In the simplest scenario it can always return all cluster nodes as in theory the user can connect to any node if it is not on the local node. More specialized implementation can know kind of hashing algorithm which is used for binding a specific user to a specific node or the implementation can keep track of all connected users to all nodes and 'know' where is the user connected at any given time. In theory it can also return 'null' it it 'knows' the user is offline.

Parameters:
jid - is a user full JID.
Returns:
List of cluster nodes to which the user can be connected.

getStatistics

void getStatistics(StatisticsList list)
Add the strategy statistics to the List.

Parameters:
list -

needsSync

boolean needsSync()
This method returns 'true' if it needs online users syncronization upon the node connection to the cluster. Normally it should return 'false'. It it return 'true' then the synchronization starts. All online users from all other nodes would sent in batches and the synchronization can take any amount of time.

Returns:
a boolean value whether synchronization is needed.

nodeConnected

void nodeConnected(tigase.xmpp.JID node)
This is a handler method which is called when a new node connects to the cluster.

Parameters:
node - is a cluster node id.

nodeDisconnected

void nodeDisconnected(tigase.xmpp.JID node)
This is a handler method which is called when a node disconnects from the cluster.

Parameters:
node - is a cluster node id.

setProperties

void setProperties(Map<String,Object> props)
Method used to pass configuration parameters to the class. Parameters are stored in Map which contains compiles set of defaults overwriten by parameters loaded from configuration file. If he implementation took a good care of providing defaults for all parameters no parameter should be missing.

Parameters:
props - a Map with all configuration parameters for the class.

userDisconnected

void userDisconnected(tigase.xmpp.JID node,
                      Queue<Packet> results,
                      tigase.xmpp.JID jid)
This is a handler method which is called when a user disconnects from some node in the cluster.

Parameters:
jid - us a user full JID just disconnected from the cluster.
node - is a cluster node id from which the user disconnected.
results - is a collection of packets which can be generated upon the user disconnection by the implementation.

usersConnected

void usersConnected(tigase.xmpp.JID node,
                    Queue<Packet> results,
                    tigase.xmpp.JID... jids)
This is a handler method which is called when a user connects to some node in the cluster.

Parameters:
jids - is a list of full user JIDs which just connected to the cluster. Normally there is only one JID provided, however, in some cases (during syncronization) there might be more than one.
node - is a cluster node id where the jid is connected to.
results - is a collection of packets which can be generated upon the user connection by the implementation.


Copyright © 2001-2006 Tigase Developers Team. All rights Reserved.