Interface AsyncChannelWrapper

  • All Known Implementing Classes:
    AsyncChannelWrapperNonSecure, AsyncChannelWrapperSecure

    public interface AsyncChannelWrapper
    This is a wrapper for a AsynchronousSocketChannel that limits the methods available thereby simplifying the process of implementing SSL/TLS support since there are fewer methods to intercept.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void close()
      Closes the underlying channel.
      java.net.SocketAddress getLocalAddress()
      Returns the local address to which the channel is bound.
      java.util.concurrent.Future<java.lang.Void> handshake()
      Performs the SSL/TLS handshake.
      java.util.concurrent.Future<java.lang.Integer> read​(java.nio.ByteBuffer dst)
      Reads data from the channel into the given buffer.
      <B,​A extends B>
      void
      read​(java.nio.ByteBuffer dst, A attachment, java.nio.channels.CompletionHandler<java.lang.Integer,​B> handler)
      Reads data from the channel into the given buffer with a completion handler.
      java.util.concurrent.Future<java.lang.Integer> write​(java.nio.ByteBuffer src)
      Writes data from the given buffer to the channel.
      <B,​A extends B>
      void
      write​(java.nio.ByteBuffer[] srcs, int offset, int length, long timeout, java.util.concurrent.TimeUnit unit, A attachment, java.nio.channels.CompletionHandler<java.lang.Long,​B> handler)
      Writes data from the given buffers to the channel with a completion handler.
    • Method Detail

      • read

        java.util.concurrent.Future<java.lang.Integer> read​(java.nio.ByteBuffer dst)
        Reads data from the channel into the given buffer.
        Parameters:
        dst - the buffer into which data is to be read
        Returns:
        a Future holding the number of bytes read
      • read

        <B,​A extends B> void read​(java.nio.ByteBuffer dst,
                                        A attachment,
                                        java.nio.channels.CompletionHandler<java.lang.Integer,​B> handler)
        Reads data from the channel into the given buffer with a completion handler.
        Type Parameters:
        B - the attachment type
        A - the attachment subtype
        Parameters:
        dst - the buffer into which data is to be read
        attachment - the object to attach to the task
        handler - the handler to use on completion
      • write

        java.util.concurrent.Future<java.lang.Integer> write​(java.nio.ByteBuffer src)
        Writes data from the given buffer to the channel.
        Parameters:
        src - the buffer from which data is to be written
        Returns:
        a Future holding the number of bytes written
      • write

        <B,​A extends B> void write​(java.nio.ByteBuffer[] srcs,
                                         int offset,
                                         int length,
                                         long timeout,
                                         java.util.concurrent.TimeUnit unit,
                                         A attachment,
                                         java.nio.channels.CompletionHandler<java.lang.Long,​B> handler)
        Writes data from the given buffers to the channel with a completion handler.
        Type Parameters:
        B - the attachment type
        A - the attachment subtype
        Parameters:
        srcs - the buffers from which data is to be written
        offset - the offset within the buffer array
        length - the number of buffers to write
        timeout - the maximum time to wait
        unit - the time unit of the timeout
        attachment - the object to attach to the task
        handler - the handler to use on completion
      • close

        void close()
        Closes the underlying channel.
      • handshake

        java.util.concurrent.Future<java.lang.Void> handshake()
                                                       throws javax.net.ssl.SSLException
        Performs the SSL/TLS handshake.
        Returns:
        a Future that completes when the handshake is finished
        Throws:
        javax.net.ssl.SSLException - if an SSL error occurs
      • getLocalAddress

        java.net.SocketAddress getLocalAddress()
                                        throws java.io.IOException
        Returns the local address to which the channel is bound.
        Returns:
        the local socket address, or null if not bound
        Throws:
        java.io.IOException - if an I/O error occurs