Package org.glassfish.grizzly.nio
Class AbstractNIOAsyncQueueReader
- java.lang.Object
-
- org.glassfish.grizzly.AbstractReader<SocketAddress>
-
- org.glassfish.grizzly.nio.AbstractNIOAsyncQueueReader
-
- All Implemented Interfaces:
AsyncQueue
,AsyncQueueReader<SocketAddress>
,Reader<SocketAddress>
- Direct Known Subclasses:
TCPNIOAsyncQueueReader
,UDPNIOAsyncQueueReader
public abstract class AbstractNIOAsyncQueueReader extends AbstractReader<SocketAddress> implements AsyncQueueReader<SocketAddress>
TheAsyncQueueReader
implementation, based on the Java NIO- Author:
- Alexey Stashok, Ryan Lubke, Gustav Trede
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.glassfish.grizzly.asyncqueue.AsyncQueue
AsyncQueue.AsyncResult
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_BUFFER_SIZE
protected int
defaultBufferSize
protected NIOTransport
transport
-
Fields inherited from interface org.glassfish.grizzly.asyncqueue.AsyncQueue
EXPECTING_MORE_OPTION
-
Fields inherited from interface org.glassfish.grizzly.Reader
COMPLETE_EVENT, INCOMPLETE_EVENT, READ_EVENT
-
-
Constructor Summary
Constructors Constructor Description AbstractNIOAsyncQueueReader(NIOTransport transport)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
close()
Close AsyncQueueProcessor and release associated resourcesprotected int
doRead(Connection connection, AsyncReadQueueRecord queueRecord)
Performs real read on the NIO channelboolean
isReady(Connection connection)
Checks whether there is ready data inAsyncQueue
, associated with theConnection
.void
onClose(Connection connection)
Callback method, which is called, whenConnection
has been closed, to let processor release a connection associated resources.protected void
onReadFailure(Connection connection, AsyncReadQueueRecord failedRecord, IOException e)
protected abstract void
onReadyToRead(Connection connection)
AsyncQueue.AsyncResult
processAsync(Context context)
Callback method, which is called async.void
read(Connection<SocketAddress> connection, Buffer buffer, CompletionHandler<ReadResult<Buffer,SocketAddress>> completionHandler, Interceptor<ReadResult> interceptor)
Method reads data to the buffer.protected abstract int
read0(Connection connection, Buffer buffer, ReadResult<Buffer,SocketAddress> currentResult)
-
Methods inherited from class org.glassfish.grizzly.AbstractReader
read, read, read
-
-
-
-
Field Detail
-
DEFAULT_BUFFER_SIZE
public static final int DEFAULT_BUFFER_SIZE
- See Also:
- Constant Field Values
-
defaultBufferSize
protected int defaultBufferSize
-
transport
protected final NIOTransport transport
-
-
Constructor Detail
-
AbstractNIOAsyncQueueReader
public AbstractNIOAsyncQueueReader(NIOTransport transport)
-
-
Method Detail
-
read
public void read(Connection<SocketAddress> connection, Buffer buffer, CompletionHandler<ReadResult<Buffer,SocketAddress>> completionHandler, Interceptor<ReadResult> interceptor)
Method reads data to the buffer.- Specified by:
read
in interfaceReader<SocketAddress>
- Parameters:
connection
- theConnection
to read frombuffer
- theBuffer
to which data will be readcompletionHandler
-CompletionHandler
, which will get notified, when read will be completedinterceptor
-Interceptor
, which will be able to intercept control each time new portion of a data was read to a buffer. The interceptor can decide, whether asynchronous read is completed or not, or provide other processing instructions.
-
isReady
public final boolean isReady(Connection connection)
Checks whether there is ready data inAsyncQueue
, associated with theConnection
.- Specified by:
isReady
in interfaceAsyncQueue
- Parameters:
connection
-Connection
- Returns:
- true, if there is ready data, or false otherwise.
-
processAsync
public AsyncQueue.AsyncResult processAsync(Context context)
Callback method, which is called async. to process readyAsyncQueue
, which are associated with the givenConnection
- Specified by:
processAsync
in interfaceAsyncQueue
- Parameters:
context
-Context
- Returns:
AsyncQueue.AsyncResult
, depending on async queue status.
-
onClose
public void onClose(Connection connection)
Callback method, which is called, whenConnection
has been closed, to let processor release a connection associated resources.- Specified by:
onClose
in interfaceAsyncQueue
- Parameters:
connection
-Connection
-
close
public final void close()
Close AsyncQueueProcessor and release associated resources- Specified by:
close
in interfaceAsyncQueue
-
doRead
protected final int doRead(Connection connection, AsyncReadQueueRecord queueRecord) throws IOException
Performs real read on the NIO channel- Parameters:
connection
- theConnection
to read fromqueueRecord
- the record to be read to- Throws:
IOException
-
onReadFailure
protected final void onReadFailure(Connection connection, AsyncReadQueueRecord failedRecord, IOException e)
-
read0
protected abstract int read0(Connection connection, Buffer buffer, ReadResult<Buffer,SocketAddress> currentResult) throws IOException
- Throws:
IOException
-
onReadyToRead
protected abstract void onReadyToRead(Connection connection) throws IOException
- Throws:
IOException
-
-