AsyncChannelWrapperSecure (Apache Tomcat 11.0.23 API Documentation)
Description: declaration: package: org.apache.tomcat.websocket, class: AsyncChannelWrapperSecure

# Class AsyncChannelWrapperSecure

java.lang.Object
org.apache.tomcat.websocket.AsyncChannelWrapperSecure

All Implemented Interfaces:
  `AsyncChannelWrapper`

public class AsyncChannelWrapperSecure extends Object implements AsyncChannelWrapper
Wraps the `AsynchronousSocketChannel` with SSL/TLS. This needs a lot more testing before it can be considered robust.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AsyncChannelWrapperSecure(AsynchronousSocketChannel socketChannel, SSLEngine sslEngine)`
  Constructs a new secure wrapper for the given channel and SSL engine.

- ## Method Summary

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

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### AsyncChannelWrapperSecure

    public AsyncChannelWrapperSecure(AsynchronousSocketChannel socketChannel, SSLEngine sslEngine)
    Constructs a new secure wrapper for the given channel and SSL engine.
    Parameters:
      `socketChannel` - the underlying `AsynchronousSocketChannel`
      `sslEngine` - the SSL engine for encryption

- ## Method Details

  - ### read

    public Future<Integer> read(ByteBuffer dst)
    Description copied from interface: `AsyncChannelWrapper`
    Reads data from the channel into the given buffer.
    Specified by:
      `read` in interface `AsyncChannelWrapper`
    Parameters:
      `dst` - the buffer into which data is to be read
    Returns:
      a Future holding the number of bytes read

  - ### read

    public <B, A extends B> void read(ByteBuffer dst, A attachment, CompletionHandler<Integer,B> handler)
    Description copied from interface: `AsyncChannelWrapper`
    Reads data from the channel into the given buffer with a completion handler.
    Specified by:
      `read` in interface `AsyncChannelWrapper`
    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

    public Future<Integer> write(ByteBuffer src)
    Description copied from interface: `AsyncChannelWrapper`
    Writes data from the given buffer to the channel.
    Specified by:
      `write` in interface `AsyncChannelWrapper`
    Parameters:
      `src` - the buffer from which data is to be written
    Returns:
      a Future holding the number of bytes written

  - ### write

    public <B, A extends B> void write(ByteBuffer[] srcs, int offset, int length, long timeout, TimeUnit unit, A attachment, CompletionHandler<Long,B> handler)
    Description copied from interface: `AsyncChannelWrapper`
    Writes data from the given buffers to the channel with a completion handler.
    Specified by:
      `write` in interface `AsyncChannelWrapper`
    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

    public void close()
    Description copied from interface: `AsyncChannelWrapper`
    Closes the underlying channel.
    Specified by:
      `close` in interface `AsyncChannelWrapper`

  - ### handshake

    public Future<Void> handshake() throws SSLException
    Description copied from interface: `AsyncChannelWrapper`
    Performs the SSL/TLS handshake.
    Specified by:
      `handshake` in interface `AsyncChannelWrapper`
    Returns:
      a Future that completes when the handshake is finished
    Throws:
      `SSLException` - if an SSL error occurs

  - ### getLocalAddress

    public SocketAddress getLocalAddress() throws IOException
    Description copied from interface: `AsyncChannelWrapper`
    Returns the local address to which the channel is bound.
    Specified by:
      `getLocalAddress` in interface `AsyncChannelWrapper`
    Returns:
      the local socket address, or null if not bound
    Throws:
      `IOException` - if an I/O error occurs