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 Summary

    Fields
    Modifier and Type
    Field
    Description
    Determines if 'unimportant' stanzas are delayed for a client that is inactive.
    Determines the maximum duration of stanzas being delayed for a client that is inactive.
    Determines the maximum length of the queue that holds delayed stanzas.
    Controls if Client State Indication functionality is made available to clients.
    static final org.slf4j.Logger
     
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Switch to the client state of 'active'.
    void
    Switch to the client state of 'inactive'.
    int
    Returns the number of stanzas that are currently in the delay queue.
    boolean
    Returns the client state for the session that is being tracked by this instance, either 'true' for 'active', or 'false' for 'inactive'
    static boolean
    isCsiNonza(org.dom4j.Element fragment)
    Checks if an XML fragment is recognized as a CSI nonza
    static boolean
    isStreamManagementNonza(org.dom4j.Element fragment)
    Deprecated, for removal: This API element is subject to removal in a future version.
    void
    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.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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).
    • isCsiNonza

      public static boolean isCsiNonza(@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.
    • isStreamManagementNonza

      @Deprecated(forRemoval=true, since="5.1.0") public static boolean isStreamManagementNonza(@Nullable org.dom4j.Element fragment)
      Deprecated, for removal: This API element is subject to removal in a future version.