tigase.server.xmppclient

## Class StreamManagementIOProcessor

- java.lang.Object
- - tigase.server.xmppclient.StreamManagementIOProcessor

- All Implemented Interfaces:
    XMPPIOProcessor

      public class StreamManagementIOProcessor
      extends Object
      implements XMPPIOProcessor

  Class implements XEP-0198 Stream Management
  Author:
    andrzej

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `StreamManagementIOProcessor.Counter` Counter class implements proper counter with overflow from 2^32-1 to 0
    `static class` | `StreamManagementIOProcessor.OutQueue` OutQueue class implements queue of outgoing packets waiting for ack with implementation of removing acked elements when id of acked packet is passed

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `XMLNS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StreamManagementIOProcessor()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getId()` Returns identifier of processor
    `void` | `getStatistics(StatisticsList list)` Returns statistics generated by this processor
    `static boolean` | `isEnabled(XMPPIOService service)` Method returns true if XMPPIOService has enabled SM.
    `protected StreamManagementIOProcessor.Counter` | `newCounter()`
    `protected StreamManagementIOProcessor.OutQueue` | `newOutQueue()`
    `void` | `packetsSent(XMPPIOService service)` Method is called when all waiting data was written to socket.
    `void` | `processCommand(XMPPIOService service, Packet pc)` Process command execution which may be sent from other component and should be processed by processor
    `boolean` | `processIncoming(XMPPIOService service, Packet packet)` Process packets read from socket as they are sent to SessionManager.
    `boolean` | `processOutgoing(XMPPIOService service, Packet packet)` Process outgoing packets as they are added to XMPPIOService outgoing packets queue.
    `boolean` | `serviceStopped(XMPPIOService service, boolean streamClosed)` Method called when XMPPIOService is closed.
    `void` | `setConnectionManager(ConnectionManager connectionManager)` Sets connection manager instance for which this XMPPIOProcessor is used
    `void` | `setProperties(Map<String,Object> props)` Method used for setting properties
    `protected boolean` | `shouldRequestAck(XMPPIOService service, StreamManagementIOProcessor.OutQueue outQueue)` Override this method to define a custom behaviour for request ack.
    `void` | `streamError(XMPPIOService service, StreamError streamErrorName)` Method called when XMPP stream error is about to be sent
    `Element[]` | `supStreamFeatures(XMPPIOService service)` Returns array of features added by this processor

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### XMLNS

          public static final String XMLNS

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### StreamManagementIOProcessor

          public StreamManagementIOProcessor()

  - ### Method Detail

    - #### isEnabled

          public static boolean isEnabled(XMPPIOService service)

      Method returns true if XMPPIOService has enabled SM.
      Parameters:
        `service` -

    - #### getId

          public String getId()

      Description copied from interface: `XMPPIOProcessor`
      Returns identifier of processor
      Specified by:
        `getId` in interface `XMPPIOProcessor`

    - #### setConnectionManager

          public void setConnectionManager(ConnectionManager connectionManager)

      Description copied from interface: `XMPPIOProcessor`
      Sets connection manager instance for which this XMPPIOProcessor is used
      Specified by:
        `setConnectionManager` in interface `XMPPIOProcessor`

    - #### supStreamFeatures

          public Element[] supStreamFeatures(XMPPIOService service)

      Description copied from interface: `XMPPIOProcessor`
      Returns array of features added by this processor
      Specified by:
        `supStreamFeatures` in interface `XMPPIOProcessor`

    - #### processIncoming

          public boolean processIncoming(XMPPIOService service,
                                         Packet packet)

      Description copied from interface: `XMPPIOProcessor`
      Process packets read from socket as they are sent to SessionManager.
      Specified by:
        `processIncoming` in interface `XMPPIOProcessor`
      Returns:
        true if packet should not be forwarded

    - #### processOutgoing

          public boolean processOutgoing(XMPPIOService service,
                                         Packet packet)

      Description copied from interface: `XMPPIOProcessor`
      Process outgoing packets as they are added to XMPPIOService outgoing packets queue.
      Specified by:
        `processOutgoing` in interface `XMPPIOProcessor`
      Returns:
        true if packet should be removed

    - #### packetsSent

          public void packetsSent(XMPPIOService service)
                           throws IOException

      Description copied from interface: `XMPPIOProcessor`
      Method is called when all waiting data was written to socket.
      Specified by:
        `packetsSent` in interface `XMPPIOProcessor`
      Throws:
        `IOException`

    - #### shouldRequestAck

          protected boolean shouldRequestAck(XMPPIOService service,
                                             StreamManagementIOProcessor.OutQueue outQueue)

      Override this method to define a custom behaviour for request ack. The default implementation will request an ack if there are more than `ack_request_count` packets waiting, so you probably want to OR your behaviour with this.

    - #### processCommand

          public void processCommand(XMPPIOService service,
                                     Packet pc)

      Description copied from interface: `XMPPIOProcessor`
      Process command execution which may be sent from other component and should be processed by processor
      Specified by:
        `processCommand` in interface `XMPPIOProcessor`

    - #### serviceStopped

          public boolean serviceStopped(XMPPIOService service,
                                        boolean streamClosed)

      Description copied from interface: `XMPPIOProcessor`
      Method called when XMPPIOService is closed.
      Specified by:
        `serviceStopped` in interface `XMPPIOProcessor`
      Returns:
        true if connecton manager should not be notified about stopping of this service

    - #### setProperties

          public void setProperties(Map<String,Object> props)

      Description copied from interface: `XMPPIOProcessor`
      Method used for setting properties
      Specified by:
        `setProperties` in interface `XMPPIOProcessor`

    - #### getStatistics

          public void getStatistics(StatisticsList list)

      Description copied from interface: `XMPPIOProcessor`
      Returns statistics generated by this processor
      Specified by:
        `getStatistics` in interface `XMPPIOProcessor`

    - #### streamError

          public void streamError(XMPPIOService service,
                                  StreamError streamErrorName)

      Description copied from interface: `XMPPIOProcessor`
      Method called when XMPP stream error is about to be sent
      Specified by:
        `streamError` in interface `XMPPIOProcessor`

    - #### newCounter

          protected StreamManagementIOProcessor.Counter newCounter()

    - #### newOutQueue

          protected StreamManagementIOProcessor.OutQueue newOutQueue()

Copyright © 2022 "Tigase, Inc.". All rights reserved.