Interface IoSession

All Superinterfaces:
AutoCloseable, Channel, Closeable, Closeable, ConnectionEndpointsIndicator
All Known Implementing Classes:
Nio2Session

public interface IoSession extends ConnectionEndpointsIndicator, Closeable
  • Method Details

    • getId

      long getId()
      Returns:
      a unique identifier for this session. Every session has its own ID which is different from any other.
    • getAcceptanceAddress

      SocketAddress getAcceptanceAddress()
      Returns:
      The service address through which this session was accepted - null if session was initiated by this peer instead of being accepted
    • getAttribute

      Object getAttribute(Object key)
      Returns the value of the user-defined attribute of this session.
      Parameters:
      key - the key of the attribute
      Returns:
      null if there is no attribute with the specified key
    • setAttribute

      Object setAttribute(Object key, Object value)
      Sets a user-defined attribute.
      Parameters:
      key - the key of the attribute
      value - the value of the attribute
      Returns:
      The old value of the attribute - null if it is new.
    • setAttributeIfAbsent

      Object setAttributeIfAbsent(Object key, Object value)
      Sets a user defined attribute if the attribute with the specified key is not set yet. This method is same with the following code except that the operation is performed atomically.
       
       if (containsAttribute(key)) {
           return getAttribute(key);
       } else {
           return setAttribute(key, value);
       }
       
       
      Parameters:
      key - The key of the attribute we want to set
      value - The value we want to set
      Returns:
      The old value of the attribute - null if not found.
    • removeAttribute

      Object removeAttribute(Object key)
      Removes a user-defined attribute with the specified key.
      Parameters:
      key - The key of the attribute we want to remove
      Returns:
      The old value of the attribute - null if not found.
    • writeBuffer

      IoWriteFuture writeBuffer(Buffer buffer) throws IOException
      Write a packet on the socket. Multiple writes can be issued concurrently and will be queued.
      Parameters:
      buffer - the buffer send. NOTE: the buffer must not be touched until the returned write future is completed.
      Returns:
      An IoWriteFuture that can be used to check when the packet has actually been sent
      Throws:
      IOException - if an error occurred when sending the packet
    • close

      CloseFuture close(boolean immediately)
      Closes this session immediately or after all queued write requests are flushed. This operation is asynchronous. Wait for the returned CloseFuture if you want to wait for the session actually closed.
      Specified by:
      close in interface Closeable
      Parameters:
      immediately - true to close this session immediately. The pending write requests will simply be discarded. false to close this session after all queued write requests are flushed.
      Returns:
      The generated CloseFuture
    • getService

      IoService getService()
      Returns:
      the IoService that created this session.
    • shutdownOutputStream

      void shutdownOutputStream() throws IOException
      Handle received EOF.
      Throws:
      IOException - If failed to shutdown the stream
    • suspendRead

      default void suspendRead()
      Suspend read operations on this session. May do nothing if not supported by the session implementation. If the session usage includes a graceful shutdown with messages being exchanged, the caller needs to take care of resuming reading the input in order to actually be able to carry on the conversation with the peer.
    • resumeRead

      default void resumeRead()
      Resume read operations on this session. May do nothing if not supported by the session implementation.