org.glassfish.grizzly.nio
Class AbstractNIOAsyncQueueReader

java.lang.Object
  extended by org.glassfish.grizzly.AbstractReader<SocketAddress>
      extended by 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>

The AsyncQueueReader 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
static int DEFAULT_BUFFER_SIZE
           
protected  int defaultBufferSize
           
protected  NIOTransport transport
           
 
Fields inherited from interface org.glassfish.grizzly.Reader
COMPLETE_EVENT, INCOMPLETE_EVENT, READ_EVENT
 
Fields inherited from interface org.glassfish.grizzly.asyncqueue.AsyncQueue
EXPECTING_MORE_OPTION
 
Constructor Summary
AbstractNIOAsyncQueueReader(NIOTransport transport)
           
 
Method Summary
 void close()
          Close AsyncQueueProcessor and release associated resources
protected  int doRead(Connection connection, AsyncReadQueueRecord queueRecord)
          Performs real read on the NIO channel
 boolean isReady(Connection connection)
          Checks whether there is ready data in AsyncQueue, associated with the Connection.
 void onClose(Connection connection)
          Callback method, which is called, when Connection 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 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.glassfish.grizzly.Reader
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 connection,
                 Buffer buffer,
                 CompletionHandler<ReadResult<Buffer,SocketAddress>> completionHandler,
                 Interceptor<ReadResult> interceptor)
Method reads data to the buffer.

Specified by:
read in interface Reader<SocketAddress>
Parameters:
connection - the Connection to read from
buffer - the Buffer to which data will be read
completionHandler - CompletionHandler, which will get notified, when read will be completed
interceptor - 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 in AsyncQueue, associated with the Connection.

Specified by:
isReady in interface AsyncQueue
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 ready AsyncQueue, which are associated with the given Connection

Specified by:
processAsync in interface AsyncQueue
Parameters:
context - Context
Returns:
AsyncQueue.AsyncResult, depending on async queue status.

onClose

public void onClose(Connection connection)
Callback method, which is called, when Connection has been closed, to let processor release a connection associated resources.

Specified by:
onClose in interface AsyncQueue
Parameters:
connection - Connection

close

public final void close()
Close AsyncQueueProcessor and release associated resources

Specified by:
close in interface AsyncQueue

doRead

protected final int doRead(Connection connection,
                           AsyncReadQueueRecord queueRecord)
                    throws IOException
Performs real read on the NIO channel

Parameters:
connection - the Connection to read from
queueRecord - 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


Copyright © 2012 Oracle Corporation. All Rights Reserved.