Package message

Provides different message formats, the InputOutputHandler is capable of transmitting.

See:
          Description

Interface Summary
BasicMessage Interface any type of message the InputOutputHandler shall be capable of transmitting must implement.
ExternalMessage Interface, all messages must implement, that involve a communication partner, that is no mix (e. g. a client or server).
InternalMessage Interface, all messages must implement, that are sent only between the mixes of a cascade (e. g. to transmit control information between two components located on different mixes).
Reply Interface, all messages must implement, that travel in direction last mix −> first mix (= receiver −> client).
Request Interface, all messages must implement, that travel in direction first mix −> last mix (= client −> receiver).
 

Class Summary
BatchSizeMessage InternalMessage used for communication between two OutputStrategy components, located on neighbored mixes.
ChannelEstablishMessage ExternalMessage used to establish a channel, which can transmit ChannelMessages and Replyies.
ChannelMessage ExternalMessage used to transmit data on an existing channel.
ChannelReleaseMessage ExternalMessage used to release an existing channel.
Message Basic abstract class for all types of messages the InputOutputHandler is capable of transmitting.
Padder Adds or removes padding to / from a message (Padding is used to guarantee a constant message length and therefore prevent linkability).
Payload Data structure for the "payload" of a message.
ReplyMessage ExternalMessage used to send data to a Client.
 

Enum Summary
ChannelEstablishMessagePart Defines the message format/message parts of a ChannelEstablishMessage.
ChannelMessagePart Defines the message format/message parts of a ChannelMessage.
 

Package message Description

Provides different message formats, the InputOutputHandler is capable of transmitting. Generally, there are two types of messages: ExternalMessages and InternalMessages. External messages involve a communication partner, that is no mix (e. g. a client or server). In contrast, internal messages are only sent between the mixes of a cascade (e. g. to transmit control information between two components located on different mixes). Both types can be Requests or Replyies. Requests travel through the cascade from left to right (where "left" is the cascade's first mix, handling connections from clients and "right" is the cascade's last mix).

All messages extend the abstract class Message. The following messages are present:

Messages which consist of more than two message parts ( ChannelEstablishMessage and ChannelMessage) each have an exclusive enumeration (ChannelEstablishMessagePart and ChannelMessagePart) defining these parts.

The length of some message parts varies depending on the current mix' position in the cascade (Note: Message length isn't constant in a cascade). To avert the need of defining different message parts (of the same type) for each mix, "dynamic" message parts are supported. They calculate their length and position automatically (according to the current mix' position in the cascade and the fixed position and length of the current part on the last mix of the cascade (which must be specified anyways, just like with non-dynamic message parts)).

An automatic padding mechanism is included, using the padding mechanism of component MessageProcessor.