Class LoggingIOSession

java.lang.Object
org.apache.hc.core5.testing.nio.LoggingIOSession
All Implemented Interfaces:
Closeable, AutoCloseable, ByteChannel, Channel, ReadableByteChannel, WritableByteChannel, SocketModalCloseable, ModalCloseable, IOSession, Identifiable

@Internal public class LoggingIOSession extends Object implements IOSession
  • Field Details

    • log

      private final org.slf4j.Logger log
    • wireLog

      private final org.slf4j.Logger wireLog
    • session

      private final IOSession session
  • Constructor Details

    • LoggingIOSession

      public LoggingIOSession(IOSession session, org.slf4j.Logger log, org.slf4j.Logger wireLog)
    • LoggingIOSession

      public LoggingIOSession(ProtocolIOSession session, org.slf4j.Logger log)
  • Method Details

    • getId

      public String getId()
      Specified by:
      getId in interface Identifiable
    • getLock

      public Lock getLock()
      Description copied from interface: IOSession
      Returns session lock that should be used by I/O event handlers to synchronize access to the session.
      Specified by:
      getLock in interface IOSession
    • enqueue

      public void enqueue(Command command, Command.Priority priority)
      Description copied from interface: IOSession
      Inserts Command at the end of the command queue.
      Specified by:
      enqueue in interface IOSession
    • hasCommands

      public boolean hasCommands()
      Description copied from interface: IOSession
      Tests if there enqueued commands pending execution.
      Specified by:
      hasCommands in interface IOSession
    • poll

      public Command poll()
      Description copied from interface: IOSession
      Removes first Command from the command queue if available.
      Specified by:
      poll in interface IOSession
    • channel

      public ByteChannel channel()
      Description copied from interface: IOSession
      Returns the underlying I/O channel associated with this session.
      Specified by:
      channel in interface IOSession
      Returns:
      the I/O channel.
    • getLocalAddress

      public SocketAddress getLocalAddress()
      Description copied from interface: IOSession
      Returns local address.
      Specified by:
      getLocalAddress in interface IOSession
      Returns:
      socket address.
    • getRemoteAddress

      public SocketAddress getRemoteAddress()
      Description copied from interface: IOSession
      Returns address of the remote peer.
      Specified by:
      getRemoteAddress in interface IOSession
      Returns:
      socket address.
    • getEventMask

      public int getEventMask()
      Description copied from interface: IOSession
      Returns mask of I/O evens this session declared interest in.
      Specified by:
      getEventMask in interface IOSession
      Returns:
      I/O event mask.
    • formatOps

      private static String formatOps(int ops)
    • setEventMask

      public void setEventMask(int ops)
      Description copied from interface: IOSession
      Declares interest in I/O event notifications by setting the event mask associated with the session
      Specified by:
      setEventMask in interface IOSession
      Parameters:
      ops - new I/O event mask.
    • setEvent

      public void setEvent(int op)
      Description copied from interface: IOSession
      Declares interest in a particular I/O event type by updating the event mask associated with the session.
      Specified by:
      setEvent in interface IOSession
      Parameters:
      op - I/O event type.
    • clearEvent

      public void clearEvent(int op)
      Description copied from interface: IOSession
      Clears interest in a particular I/O event type by updating the event mask associated with the session.
      Specified by:
      clearEvent in interface IOSession
      Parameters:
      op - I/O event type.
    • close

      public void close()
      Description copied from interface: IOSession
      Terminates the session gracefully and closes the underlying I/O channel. This method ensures that session termination handshake, such as the one used by the SSL/TLS protocol, is correctly carried out.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Channel
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface IOSession
    • getStatus

      public IOSession.Status getStatus()
      Description copied from interface: IOSession
      Returns status of the session:

      IOSession.Status.ACTIVE: session is active.

      IOSession.Status.CLOSING: session is being closed.

      IOSession.Status.CLOSED: session has been terminated.

      Specified by:
      getStatus in interface IOSession
      Returns:
      session status.
    • isOpen

      public boolean isOpen()
      Specified by:
      isOpen in interface Channel
    • close

      public void close(CloseMode closeMode)
      Description copied from interface: ModalCloseable
      Closes this process or endpoint and releases any system resources associated with it. If the endpoint or the process is already closed then invoking this method has no effect.
      Specified by:
      close in interface ModalCloseable
      Parameters:
      closeMode - How to close the receiver.
    • getSocketTimeout

      public Timeout getSocketTimeout()
      Description copied from interface: IOSession
      Returns value of the socket timeout in milliseconds. The value of 0 signifies the session cannot time out.
      Specified by:
      getSocketTimeout in interface IOSession
      Specified by:
      getSocketTimeout in interface SocketModalCloseable
      Returns:
      socket timeout.
    • setSocketTimeout

      public void setSocketTimeout(Timeout timeout)
      Description copied from interface: IOSession
      Sets value of the socket timeout in milliseconds. The value of 0 signifies the session cannot time out.

      Please note this operation may affect the last event time.

      Specified by:
      setSocketTimeout in interface IOSession
      Specified by:
      setSocketTimeout in interface SocketModalCloseable
      Parameters:
      timeout - socket timeout.
      See Also:
    • read

      public int read(ByteBuffer dst) throws IOException
      Specified by:
      read in interface ReadableByteChannel
      Throws:
      IOException
    • write

      public int write(ByteBuffer src) throws IOException
      Specified by:
      write in interface WritableByteChannel
      Throws:
      IOException
    • logData

      private void logData(ByteBuffer data, String prefix) throws IOException
      Throws:
      IOException
    • updateReadTime

      public void updateReadTime()
      Description copied from interface: IOSession
      Updates the timestamp of the last read event
      Specified by:
      updateReadTime in interface IOSession
    • updateWriteTime

      public void updateWriteTime()
      Description copied from interface: IOSession
      Updates the timestamp of the last write event
      Specified by:
      updateWriteTime in interface IOSession
    • getLastReadTime

      public long getLastReadTime()
      Description copied from interface: IOSession
      Returns timestamp of the last read event.
      Specified by:
      getLastReadTime in interface IOSession
      Returns:
      timestamp.
    • getLastWriteTime

      public long getLastWriteTime()
      Description copied from interface: IOSession
      Returns timestamp of the last write event.
      Specified by:
      getLastWriteTime in interface IOSession
      Returns:
      timestamp.
    • getLastEventTime

      public long getLastEventTime()
      Description copied from interface: IOSession
      Returns timestamp of the last I/O event including socket timeout reset.
      Specified by:
      getLastEventTime in interface IOSession
      Returns:
      timestamp.
      See Also:
    • getHandler

      public IOEventHandler getHandler()
      Description copied from interface: IOSession
      Returns event handler associated with the session.
      Specified by:
      getHandler in interface IOSession
    • upgrade

      public void upgrade(IOEventHandler handler)
      Description copied from interface: IOSession
      Upgrades event handler associated with the session.
      Specified by:
      upgrade in interface IOSession
    • toString

      public String toString()
      Overrides:
      toString in class Object