Class SocketFrameHandler

java.lang.Object
com.rabbitmq.client.impl.SocketFrameHandler
All Implemented Interfaces:
FrameHandler, NetworkConnection

public class SocketFrameHandler extends Object implements FrameHandler
A socket-based frame handler.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Time to linger before closing the socket forcefully.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    SocketFrameHandler(Socket socket, ExecutorService shutdownExecutor)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Close the underlying data connection (complaint not permitted).
    void
    Flush the underlying data connection.
    Retrieve address of peer.
     
    Retrieve the local host.
    int
    Retrieve the local port number.
    int
    Retrieve port number of peer.
    int
    Get the underlying socket's read timeout in milliseconds.
    void
     
    Read a Frame from the underlying data connection.
    void
    Send the initial connection header, thus kickstarting the AMQP protocol version negotiation process and putting the underlying connection in a state such that the next layer of startup can proceed.
    void
    sendHeader(int major, int minor)
    Write a 0-8-style connection header to the underlying socket, containing the specified version information, kickstarting the AMQP protocol version negotiation process.
    void
    sendHeader(int major, int minor, int revision)
    Write a 0-9-1-style connection header to the underlying socket, containing the specified version information, kickstarting the AMQP protocol version negotiation process.
    void
    setTimeout(int timeoutMs)
    Set the underlying socket's read timeout in milliseconds, if applicable.
    void
    Write a Frame to the underlying data connection.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • SOCKET_CLOSING_TIMEOUT

      public static final int SOCKET_CLOSING_TIMEOUT
      Time to linger before closing the socket forcefully.
      See Also:
  • Constructor Details

  • Method Details

    • getAddress

      public InetAddress getAddress()
      Description copied from interface: NetworkConnection
      Retrieve address of peer.
      Specified by:
      getAddress in interface NetworkConnection
    • getLocalAddress

      public InetAddress getLocalAddress()
      Description copied from interface: NetworkConnection
      Retrieve the local host.
      Specified by:
      getLocalAddress in interface NetworkConnection
      Returns:
      the client socket address.
    • getInputStream

      public DataInputStream getInputStream()
    • getPort

      public int getPort()
      Description copied from interface: NetworkConnection
      Retrieve port number of peer.
      Specified by:
      getPort in interface NetworkConnection
    • getLocalPort

      public int getLocalPort()
      Description copied from interface: NetworkConnection
      Retrieve the local port number.
      Specified by:
      getLocalPort in interface NetworkConnection
      Returns:
      the client socket port number
    • setTimeout

      public void setTimeout(int timeoutMs) throws SocketException
      Description copied from interface: FrameHandler
      Set the underlying socket's read timeout in milliseconds, if applicable.
      Specified by:
      setTimeout in interface FrameHandler
      Parameters:
      timeoutMs - The timeout in milliseconds
      Throws:
      SocketException
    • getTimeout

      public int getTimeout() throws SocketException
      Description copied from interface: FrameHandler
      Get the underlying socket's read timeout in milliseconds.
      Specified by:
      getTimeout in interface FrameHandler
      Returns:
      The timeout in milliseconds
      Throws:
      SocketException
    • sendHeader

      public void sendHeader(int major, int minor) throws IOException
      Write a 0-8-style connection header to the underlying socket, containing the specified version information, kickstarting the AMQP protocol version negotiation process.
      Parameters:
      major - major protocol version number
      minor - minor protocol version number
      Throws:
      IOException - if there is a problem accessing the connection
      See Also:
    • sendHeader

      public void sendHeader(int major, int minor, int revision) throws IOException
      Write a 0-9-1-style connection header to the underlying socket, containing the specified version information, kickstarting the AMQP protocol version negotiation process.
      Parameters:
      major - major protocol version number
      minor - minor protocol version number
      revision - protocol revision number
      Throws:
      IOException - if there is a problem accessing the connection
      See Also:
    • sendHeader

      public void sendHeader() throws IOException
      Description copied from interface: FrameHandler
      Send the initial connection header, thus kickstarting the AMQP protocol version negotiation process and putting the underlying connection in a state such that the next layer of startup can proceed.
      Specified by:
      sendHeader in interface FrameHandler
      Throws:
      IOException - if there is a problem accessing the connection
    • initialize

      public void initialize(AMQConnection connection)
      Specified by:
      initialize in interface FrameHandler
    • readFrame

      public Frame readFrame() throws IOException
      Description copied from interface: FrameHandler
      Read a Frame from the underlying data connection.
      Specified by:
      readFrame in interface FrameHandler
      Returns:
      an incoming Frame, or null if there is none
      Throws:
      IOException - if there is a problem accessing the connection
      SocketTimeoutException - if the underlying read times out
    • writeFrame

      public void writeFrame(Frame frame) throws IOException
      Description copied from interface: FrameHandler
      Write a Frame to the underlying data connection.
      Specified by:
      writeFrame in interface FrameHandler
      Parameters:
      frame - the Frame to transmit
      Throws:
      IOException - if there is a problem accessing the connection
    • flush

      public void flush() throws IOException
      Description copied from interface: FrameHandler
      Flush the underlying data connection.
      Specified by:
      flush in interface FrameHandler
      Throws:
      IOException - if there is a problem accessing the connection
    • close

      public void close()
      Description copied from interface: FrameHandler
      Close the underlying data connection (complaint not permitted).
      Specified by:
      close in interface FrameHandler