Package org.apache.tomcat.websocket
Interface AsyncChannelWrapper
-
- All Known Implementing Classes:
AsyncChannelWrapperNonSecure,AsyncChannelWrapperSecure
public interface AsyncChannelWrapperThis is a wrapper for aAsynchronousSocketChannelthat 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 voidclose()Closes the underlying channel.java.net.SocketAddressgetLocalAddress()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>
voidread(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>
voidwrite(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 typeA- the attachment subtype- Parameters:
dst- the buffer into which data is to be readattachment- the object to attach to the taskhandler- 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 typeA- the attachment subtype- Parameters:
srcs- the buffers from which data is to be writtenoffset- the offset within the buffer arraylength- the number of buffers to writetimeout- the maximum time to waitunit- the time unit of the timeoutattachment- the object to attach to the taskhandler- 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.SSLExceptionPerforms 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.IOExceptionReturns 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
-
-