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:
  • Field Details

    • 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:
  • Constructor Details

  • Method Details

    • 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.