|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.grizzly.async.AbstractAsyncQueueWriter
public abstract class AbstractAsyncQueueWriter
Constructor Summary | |
---|---|
AbstractAsyncQueueWriter(SelectorHandler selectorHandler)
|
Method Summary | |
---|---|
void |
close()
Close AsyncQueueWriter and release its resources |
protected abstract void |
doWrite(WritableByteChannel channel,
SocketAddress dstAddress,
ByteBuffer byteBuffer)
|
protected void |
doWrite(WritableByteChannel channel,
SocketAddress dstAddress,
ByteBuffer byteBuffer,
AsyncQueueDataProcessor writePreProcessor)
|
boolean |
hasReadyAsyncWriteData(SelectionKey key)
Checks whether there is any data in AsyncQueue ready
to be written to the SelectableChannel , associated with the
given SelectionKey |
void |
onClose(SelectableChannel channel)
Callback method, which should be called by SelectorHandler to
notify, that given SelectableChannel is going to be closed, so
related SelectableChannel data could be released from
AsyncQueue |
void |
onWrite(SelectionKey key)
Callback method, which should be called by SelectorHandler to
notify, that SelectableChannel , associated with the given
SelectionKey is ready to transmit data. |
protected void |
registerForWriting(SelectionKey key)
|
void |
write(SelectionKey key,
ByteBuffer buffer)
Method writes ByteBuffer to the SelectableChannel
First, if SelectableChannel associated write queue is empty -
it tries to write ByteBuffer to the given
SelectableChannel directly (without putting to the queue). |
void |
write(SelectionKey key,
ByteBuffer buffer,
AsyncWriteCallbackHandler callbackHandler)
Method writes ByteBuffer to the SelectableChannel
First, if SelectableChannel associated write queue is empty -
it tries to write ByteBuffer to the given
SelectableChannel directly (without putting to the queue). |
void |
write(SelectionKey key,
ByteBuffer buffer,
AsyncWriteCallbackHandler callbackHandler,
AsyncQueueDataProcessor writePreProcessor)
Method writes ByteBuffer to the SelectableChannel
First, if SelectableChannel associated write queue is empty -
it tries to write ByteBuffer to the given
SelectableChannel directly (without putting to the queue). |
void |
write(SelectionKey key,
ByteBuffer buffer,
AsyncWriteCallbackHandler callbackHandler,
AsyncQueueDataProcessor writePreProcessor,
boolean isCloneByteBuffer)
Method writes ByteBuffer to the SelectableChannel
First, if SelectableChannel associated write queue is empty -
it tries to write ByteBuffer to the given
SelectableChannel directly (without putting to the queue). |
void |
write(SelectionKey key,
SocketAddress dstAddress,
ByteBuffer buffer)
Method sends ByteBuffer to the SocketAddress
First, if SelectableChannel associated write queue is empty -
it tries to write ByteBuffer to the given
SocketAddress directly (without putting to the queue). |
void |
write(SelectionKey key,
SocketAddress dstAddress,
ByteBuffer buffer,
AsyncWriteCallbackHandler callbackHandler)
Method sends ByteBuffer to the SocketAddress
First, if SelectableChannel associated write queue is empty -
it tries to write ByteBuffer to the given
SocketAddress directly (without putting to the queue). |
void |
write(SelectionKey key,
SocketAddress dstAddress,
ByteBuffer buffer,
AsyncWriteCallbackHandler callbackHandler,
AsyncQueueDataProcessor writePreProcessor)
Method sends ByteBuffer to the SocketAddress
First, if SelectableChannel associated write queue is empty -
it tries to write ByteBuffer to the given
SocketAddress directly (without putting to the queue). |
void |
write(SelectionKey key,
SocketAddress dstAddress,
ByteBuffer buffer,
AsyncWriteCallbackHandler callbackHandler,
AsyncQueueDataProcessor writePreProcessor,
boolean isCloneByteBuffer)
Method sends ByteBuffer to the SocketAddress
First, if SelectableChannel associated write queue is empty -
it tries to write ByteBuffer to the given
SocketAddress directly (without putting to the queue). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public AbstractAsyncQueueWriter(SelectorHandler selectorHandler)
Method Detail |
---|
public void write(SelectionKey key, ByteBuffer buffer) throws IOException
ByteBuffer
to the SelectableChannel
First, if SelectableChannel
associated write queue is empty -
it tries to write ByteBuffer
to the given
SelectableChannel
directly (without putting to the queue).
If associated write queue is not empty or after direct writing
ByteBuffer
still has ready data to be written -
ByteBuffer
will be added to AsyncQueue
and SelectableChannel will be registered on
SelectorHandler
, waiting for OP_WRITE event.
If an exception occurs, during direct writing - it will be propagated
to the caller directly, otherwise it will be just logged by
Grizzly framework.
- Specified by:
write
in interface AsyncQueueWriter
- Parameters:
key
- SelectionKey
associated with
SelectableChannel
ByteBuffer
should be written tobuffer
- ByteBuffer
- Throws:
IOException
public void write(SelectionKey key, ByteBuffer buffer, AsyncWriteCallbackHandler callbackHandler) throws IOException
ByteBuffer
to the SelectableChannel
First, if SelectableChannel
associated write queue is empty -
it tries to write ByteBuffer
to the given
SelectableChannel
directly (without putting to the queue).
If associated write queue is not empty or after direct writing
ByteBuffer
still has ready data to be written -
ByteBuffer
will be added to AsyncQueue
and SelectableChannel will be registered on
SelectorHandler
, waiting for OP_WRITE event.
If an exception occurs, during direct writing - it will be propagated
to the caller directly, otherwise, if the ByteBuffer
is
added to a writing queue - exception notification will come via
AsyncWriteCallbackHandler.onIOException()
- Specified by:
write
in interface AsyncQueueWriter
- Parameters:
key
- SelectionKey
associated with
SelectableChannel
ByteBuffer
should be written tobuffer
- ByteBuffer
callbackHandler
- AsyncWriteCallbackHandler
,
which will get notified, when
ByteBuffer
will be completely written
- Throws:
IOException
public void write(SelectionKey key, ByteBuffer buffer, AsyncWriteCallbackHandler callbackHandler, AsyncQueueDataProcessor writePreProcessor) throws IOException
ByteBuffer
to the SelectableChannel
First, if SelectableChannel
associated write queue is empty -
it tries to write ByteBuffer
to the given
SelectableChannel
directly (without putting to the queue).
If associated write queue is not empty or after direct writing
ByteBuffer
still has ready data to be written -
ByteBuffer
will be added to AsyncQueue
and SelectableChannel will be registered on
SelectorHandler
, waiting for OP_WRITE event.
If an exception occurs, during direct writing - it will be propagated
to the caller directly, otherwise, if the ByteBuffer
is
added to a writing queue - exception notification will come via
AsyncWriteCallbackHandler.onIOException()
Before data will be written on SelectableChannel
, first it
will be passed for preprocessing to AsyncQueueDataProcessor
,
and then preprocessor result data
(AsyncQueueDataProcessor.getResultByteBuffer()
) will be
written on the SelectableChannel
.
- Specified by:
write
in interface AsyncQueueWriter
- Parameters:
key
- SelectionKey
associated with
SelectableChannel
ByteBuffer
should be written tobuffer
- ByteBuffer
callbackHandler
- AsyncWriteCallbackHandler
,
which will get notified, when
ByteBuffer
will be completely writtenwritePreProcessor
- AsyncQueueDataProcessor
, which
will perform data processing, before it will be
written on SelectableChannel
- Throws:
IOException
public void write(SelectionKey key, ByteBuffer buffer, AsyncWriteCallbackHandler callbackHandler, AsyncQueueDataProcessor writePreProcessor, boolean isCloneByteBuffer) throws IOException
ByteBuffer
to the SelectableChannel
First, if SelectableChannel
associated write queue is empty -
it tries to write ByteBuffer
to the given
SelectableChannel
directly (without putting to the queue).
If associated write queue is not empty or after direct writing
ByteBuffer
still has ready data to be written -
ByteBuffer
will be added to AsyncQueue
and SelectableChannel will be registered on
SelectorHandler
, waiting for OP_WRITE event.
If an exception occurs, during direct writing - it will be propagated
to the caller directly, otherwise, if the ByteBuffer
is
added to a writing queue - exception notification will come via
AsyncWriteCallbackHandler.onIOException()
Before data will be written on SelectableChannel
, first it
will be passed for preprocessing to AsyncQueueDataProcessor
,
and then preprocessor result data
(AsyncQueueDataProcessor.getResultByteBuffer()
) will be
written on the SelectableChannel
.
- Specified by:
write
in interface AsyncQueueWriter
- Parameters:
key
- SelectionKey
associated with
SelectableChannel
ByteBuffer
should be written tobuffer
- ByteBuffer
callbackHandler
- AsyncWriteCallbackHandler
,
which will get notified, when
ByteBuffer
will be completely writtenwritePreProcessor
- AsyncQueueDataProcessor
, which
will perform data processing, before it will be
written on SelectableChannel
isCloneByteBuffer
- if true - AsyncQueueWriter
will
clone given
ByteBuffer
before puting it to the
AsyncQueue
- Throws:
IOException
public void write(SelectionKey key, SocketAddress dstAddress, ByteBuffer buffer) throws IOException
ByteBuffer
to the SocketAddress
First, if SelectableChannel
associated write queue is empty -
it tries to write ByteBuffer
to the given
SocketAddress
directly (without putting to the queue).
If associated write queue is not empty or after direct writing
ByteBuffer
still has ready data to be written -
ByteBuffer
will be added to AsyncQueue
and SelectableChannel will be registered on
SelectorHandler
, waiting for OP_WRITE event.
If an exception occurs, during direct writing - it will be propagated
to the caller directly, otherwise it will be just logged by
Grizzly framework.
- Specified by:
write
in interface AsyncQueueWriter
- Parameters:
key
- SelectionKey
associated with
SelectableChannel
, which will be used to
sendByteBuffer
todstAddress
- destination address ByteBuffer
will be sent tobuffer
- ByteBuffer
- Throws:
IOException
public void write(SelectionKey key, SocketAddress dstAddress, ByteBuffer buffer, AsyncWriteCallbackHandler callbackHandler) throws IOException
ByteBuffer
to the SocketAddress
First, if SelectableChannel
associated write queue is empty -
it tries to write ByteBuffer
to the given
SocketAddress
directly (without putting to the queue).
If associated write queue is not empty or after direct writing
ByteBuffer
still has ready data to be written -
ByteBuffer
will be added to AsyncQueue
and SelectableChannel will be registered on
SelectorHandler
, waiting for OP_WRITE event.
If an exception occurs, during direct writing - it will be propagated
to the caller directly, otherwise, if the ByteBuffer
is
added to a writing queue - exception notification will come via
AsyncWriteCallbackHandler.onIOException()
- Specified by:
write
in interface AsyncQueueWriter
- Parameters:
key
- SelectionKey
associated with
SelectableChannel
ByteBuffer
should be written todstAddress
- destination address ByteBuffer
will be sent tobuffer
- ByteBuffer
callbackHandler
- AsyncWriteCallbackHandler
,
which will get notified, when
ByteBuffer
will be completely written
- Throws:
IOException
public void write(SelectionKey key, SocketAddress dstAddress, ByteBuffer buffer, AsyncWriteCallbackHandler callbackHandler, AsyncQueueDataProcessor writePreProcessor) throws IOException
ByteBuffer
to the SocketAddress
First, if SelectableChannel
associated write queue is empty -
it tries to write ByteBuffer
to the given
SocketAddress
directly (without putting to the queue).
If associated write queue is not empty or after direct writing
ByteBuffer
still has ready data to be written -
ByteBuffer
will be added to AsyncQueue
and SelectableChannel will be registered on
SelectorHandler
, waiting for OP_WRITE event.
If an exception occurs, during direct writing - it will be propagated
to the caller directly, otherwise, if the ByteBuffer
is
added to a writing queue - exception notification will come via
AsyncWriteCallbackHandler.onIOException()
Before data will be written on SelectableChannel
, first it
will be passed for preprocessing to AsyncQueueDataProcessor
,
and then preprocessor result data
(AsyncQueueDataProcessor.getResultByteBuffer()
) will be
written on the SelectableChannel
.
- Specified by:
write
in interface AsyncQueueWriter
- Parameters:
key
- SelectionKey
associated with
SelectableChannel
ByteBuffer
should be written todstAddress
- destination address ByteBuffer
will be sent tobuffer
- ByteBuffer
callbackHandler
- AsyncWriteCallbackHandler
,
which will get notified, when
ByteBuffer
will be completely writtenwritePreProcessor
- AsyncQueueDataProcessor
, which
will perform data processing, before it will be
written on SelectableChannel
- Throws:
IOException
public void write(SelectionKey key, SocketAddress dstAddress, ByteBuffer buffer, AsyncWriteCallbackHandler callbackHandler, AsyncQueueDataProcessor writePreProcessor, boolean isCloneByteBuffer) throws IOException
ByteBuffer
to the SocketAddress
First, if SelectableChannel
associated write queue is empty -
it tries to write ByteBuffer
to the given
SocketAddress
directly (without putting to the queue).
If associated write queue is not empty or after direct writing
ByteBuffer
still has ready data to be written -
ByteBuffer
will be added to AsyncQueue
and SelectableChannel will be registered on
SelectorHandler
, waiting for OP_WRITE event.
If an exception occurs, during direct writing - it will be propagated
to the caller directly, otherwise, if the ByteBuffer
is
added to a writing queue - exception notification will come via
AsyncWriteCallbackHandler.onIOException()
Before data will be written on SelectableChannel
, first it
will be passed for preprocessing to AsyncQueueDataProcessor
,
and then preprocessor result data
(AsyncQueueDataProcessor.getResultByteBuffer()
) will be
written on the SelectableChannel
.
- Specified by:
write
in interface AsyncQueueWriter
- Parameters:
key
- SelectionKey
associated with
SelectableChannel
ByteBuffer
should be written todstAddress
- destination address ByteBuffer
will be sent tobuffer
- ByteBuffer
callbackHandler
- AsyncWriteCallbackHandler
,
which will get notified, when
ByteBuffer
will be completely writtenwritePreProcessor
- AsyncQueueDataProcessor
, which
will perform data processing, before it will be
written on SelectableChannel
isCloneByteBuffer
- if true - AsyncQueueWriter
will
clone given
ByteBuffer
before puting it to the
AsyncQueue
- Throws:
IOException
public boolean hasReadyAsyncWriteData(SelectionKey key)
AsyncQueue
ready
to be written to the SelectableChannel
, associated with the
given SelectionKey
hasReadyAsyncWriteData
in interface AsyncQueueWriter
key
- SelectionKey
associated with SelectableChannel
public void onWrite(SelectionKey key) throws IOException
SelectorHandler
to
notify, that SelectableChannel
, associated with the given
SelectionKey
is ready to transmit data.
onWrite
in interface AsyncQueueWriter
key
- SelectionKey
associated with SelectableChannel
IOException
public void onClose(SelectableChannel channel)
SelectorHandler
to
notify, that given SelectableChannel
is going to be closed, so
related SelectableChannel
data could be released from
AsyncQueue
onClose
in interface AsyncQueueWriter
public void close()
AsyncQueueWriter
and release its resources
close
in interface AsyncQueueWriter
protected void doWrite(WritableByteChannel channel, SocketAddress dstAddress, ByteBuffer byteBuffer, AsyncQueueDataProcessor writePreProcessor) throws IOException
IOException
protected abstract void doWrite(WritableByteChannel channel, SocketAddress dstAddress, ByteBuffer byteBuffer) throws IOException
IOException
protected void registerForWriting(SelectionKey key)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |