public final class DeserializerChannelProcessor extends Object implements ChannelProcessor<Object,ReadableByteChannel>
ChannelProcessor which reads and deserializes the first
object from the specified channel. This ChannelProcessor requires a
ReadableByteChannel to read the bytes from. The object read from the
channel will be forwarded to the specified AsyncDataListener.
ChannelProcessor, this class is safe to be
accessed by multiple threads concurrently.
AsyncChannelLinkChannelProcessor.StateListener| Constructor and Description |
|---|
DeserializerChannelProcessor()
Creates a new
DeserializerChannelProcessor which is ready to
read the objects from the provided channel. |
| Modifier and Type | Method and Description |
|---|---|
void |
processChannel(ReadableByteChannel channel,
AsyncDataListener<Object> listener,
ChannelProcessor.StateListener stateListener)
Processes the content of specified open channel and forwards the
processed content to the specified
AsyncDataListener. |
public DeserializerChannelProcessor()
DeserializerChannelProcessor which is ready to
read the objects from the provided channel.public void processChannel(ReadableByteChannel channel, AsyncDataListener<Object> listener, ChannelProcessor.StateListener stateListener) throws IOException
AsyncDataListener. This method
may or may not call the
onDoneReceive method
of the specified listener but if it does, it must honor the contract of
the AsyncDataListener and stop forwarding anymore data.
Implementation note: This method may read more bytes from the specified channel than necessary to read the first object.
processChannel in interface ChannelProcessor<Object,ReadableByteChannel>channel - the channel whose content is to be processed and be
forwarded to the specified listener. This channel may only be accessed
in this method call and does not need to be closed in this method call.
This argument cannot be null.listener - the listener to which processed data is to be forwarded.
The data maybe forwarded only during this method call. The
onDoneReceive method of this listener does not need to be
called by this method but otherwise, this method must honor the
contract of the listener. This argument cannot be null.stateListener - the StateListener through which this method
call may show its current progress of processing the channel. This
argument cannot be null.IOException - thrown if there was some error, while processing the
channel. Throwing this exception, of course, means the termination of
the data providing.