Interface ChannelProcessor<DataType,ChannelType extends Channel>

Type Parameters:
DataType - the type of the data provided by the ChannelProcessor to the AsyncDataListener
ChannelType - the type of the channel which can be handled and processed by the ChannelProcessor
All Known Implementing Classes:
DeserializerChannelProcessor

public interface ChannelProcessor<DataType,ChannelType extends Channel>
Defines an interface for processing the data of an open Channel and to forward the processed data to an AsyncDataListener.

This interface was designed for the AsyncChannelLink which relies on a ChannelProcessor to actually process the content of the channel opened and provide the requested data.

Thread safety

Implementations of this interface must be safe to be accessed by multiple threads concurrently.

Synchronization transparency

Implementations of this interface are not required to be synchronization transparent.
  • Method Details

    • processChannel

      void processChannel(ChannelType channel, AsyncDataListener<DataType> listener, ChannelProcessor.StateListener stateListener) throws IOException
      Processes the content of specified open channel and forwards the processed content to the specified 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.
      Parameters:
      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.
      Throws:
      IOException - thrown if there was some error, while processing the channel. Throwing this exception, of course, means the termination of the data providing.