Package org.jivesoftware.openfire.csi
Class CsiManager
- java.lang.Object
-
- org.jivesoftware.openfire.csi.CsiManager
-
public class CsiManager extends Object
Handles Client State Indication nonzas for one particular client session.- Author:
- Guus der Kinderen, guus@goodbytes.nl
- See Also:
- XEP-0352: Client State Indication
-
-
Field Summary
Fields Modifier and Type Field Description static SystemProperty<Boolean>
DELAY_ENABLED
Determines if 'unimportant' stanzas are delayed for a client that is inactive.static SystemProperty<Duration>
DELAY_MAX_DURATION
Determines the maximum duration of stanzas being delayed for a client that is inactive.static SystemProperty<Integer>
DELAY_QUEUE_CAPACITY
Determines the maximum length of the queue that holds delayed stanzas.static SystemProperty<Boolean>
ENABLED
Controls if Client State Indication functionality is made available to clients.static org.slf4j.Logger
Log
static String
NAMESPACE
-
Constructor Summary
Constructors Constructor Description CsiManager(LocalClientSession session)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
activate()
Switch to the client state of 'active'.void
deactivate()
Switch to the client state of 'inactive'.int
getDelayQueueSize()
Returns the number of stanzas that are currently in the delay queue.boolean
isActive()
Returns the client state for the session that is being tracked by this instance, either 'true' for 'active', or 'false' for 'inactive'static boolean
isStreamManagementNonza(org.dom4j.Element fragment)
Checks if an XML fragment is recognized as a CSI nonzavoid
process(org.dom4j.Element nonza)
Processes a CSI nonza.List<org.xmpp.packet.Packet>
queueOrPush(org.xmpp.packet.Packet packet)
Queues an unimportant stanza for later delivery, or returns the entire queue (including the argument) to be sent to the client.
-
-
-
Field Detail
-
Log
public static final org.slf4j.Logger Log
-
ENABLED
public static SystemProperty<Boolean> ENABLED
Controls if Client State Indication functionality is made available to clients.
-
DELAY_ENABLED
public static SystemProperty<Boolean> DELAY_ENABLED
Determines if 'unimportant' stanzas are delayed for a client that is inactive.
-
DELAY_MAX_DURATION
public static SystemProperty<Duration> DELAY_MAX_DURATION
Determines the maximum duration of stanzas being delayed for a client that is inactive.
-
DELAY_QUEUE_CAPACITY
public static SystemProperty<Integer> DELAY_QUEUE_CAPACITY
Determines the maximum length of the queue that holds delayed stanzas.
-
NAMESPACE
public static final String NAMESPACE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CsiManager
public CsiManager(@Nonnull LocalClientSession session)
-
-
Method Detail
-
process
public void process(@Nonnull org.dom4j.Element nonza)
Processes a CSI nonza.- Parameters:
nonza
- The CSI nonza to be processed.
-
activate
public void activate()
Switch to the client state of 'active'.
-
deactivate
public void deactivate()
Switch to the client state of 'inactive'.
-
isActive
public boolean isActive()
Returns the client state for the session that is being tracked by this instance, either 'true' for 'active', or 'false' for 'inactive'- Returns:
- a client state indication
-
getDelayQueueSize
public int getDelayQueueSize()
Returns the number of stanzas that are currently in the delay queue.- Returns:
- the number of delayed stanzas.
-
queueOrPush
public List<org.xmpp.packet.Packet> queueOrPush(@Nonnull org.xmpp.packet.Packet packet)
Queues an unimportant stanza for later delivery, or returns the entire queue (including the argument) to be sent to the client.- Parameters:
packet
- the stanza to process.- Returns:
- stanzas to be delivered to the client (possibly empty).
-
isStreamManagementNonza
public static boolean isStreamManagementNonza(@Nullable org.dom4j.Element fragment)
Checks if an XML fragment is recognized as a CSI nonza- Parameters:
fragment
- the XML to evaluate- Returns:
- true if the XML is recognized as a CSI nonza, otherwise false.
-
-