Channel components are used to exchange messages between different address spaces.

We distinguish two Channel components : ChannelIn and ChannelOut.

This package contains various Channel implementations. They are based on a socket abstraction. A socket provides an input, an output, and a method to close it (see {@link org.objectweb.dream.channel.SocketState} interface).

Channel components use the {@link org.objectweb.dream.message.codec.MessageCodec} interface to encode and decode messages using the socket's input or output.

Channel components are composite components build as follows:

TODO insert pictures

PushChannelOut components are made of:

PushChannelIn are made of:

The Dream library currently provides the following TCPPushChannelOut components:

These ChannelOut can be used with an acknoledgment component by replacing TCPPushChannelOut with TCPPushChannelOutAck.

The Dream library currently provides the following TCPPushChannelIn:

These ChannelIn can be used with an acknoledgment component by replacing TCPPushChannelIn with TCPPushChannelInAck.