Class OutgoingServerSocketReader

java.lang.Object
org.jivesoftware.openfire.server.OutgoingServerSocketReader

public class OutgoingServerSocketReader extends Object
An OutgoingServerSocketReader is responsible for reading and queueing the DOM Element sent by a remote server. Since the DOM Elements are received using the outgoing connection only special stanzas may be sent by the remote server (eg. db:result stanzas for answering if the Authoritative Server verified the key sent by this server).

This class is also responsible for closing the outgoing connection if the remote server sent an end of the stream element.

Author:
Gaston Dombiak
  • Constructor Details

    • OutgoingServerSocketReader

      public OutgoingServerSocketReader(XMPPPacketReader reader)
  • Method Details

    • getSession

      public OutgoingServerSession getSession()
      Returns the OutgoingServerSession for which this reader is working for or null if a OutgoingServerSession was not created yet. While the OutgoingServerSession is being created it is possible to have a reader with no session.
      Returns:
      the OutgoingServerSession for which this reader is working for or null if a OutgoingServerSession was not created yet.
    • setSession

      public void setSession(OutgoingServerSession session)
      Sets the OutgoingServerSession for which this reader is working for.
      Parameters:
      session - the OutgoingServerSession for which this reader is working for
    • getElement

      public org.dom4j.Element getElement(long timeout, TimeUnit unit) throws InterruptedException
      Retrieves and removes the first received element that was stored in the queue, waiting if necessary up to the specified wait time if no elements are present on this queue.
      Parameters:
      timeout - how long to wait before giving up, in units of unit.
      unit - a TimeUnit determining how to interpret the timeout parameter.
      Returns:
      the head of this queue, or null if the specified waiting time elapses before an element is present.
      Throws:
      InterruptedException - if interrupted while waiting.
    • isOpen

      public boolean isOpen()