Package org.apache.catalina.tribes

## Interface ChannelSender

All Superinterfaces:
  `Heartbeat`

All Known Implementing Classes:
  `ReplicationTransmitter`

    public interface ChannelSender
    extends Heartbeat

ChannelReceiver Interface
The `ChannelSender` interface is the data sender component at the bottom layer, the IO layer (for layers see the javadoc for the `Channel` interface).
The channel sender must support "silent" members, ie, be able to send a message to a member that is not in the membership, but is part of the destination parameter

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `add​(Member member)` Notify the sender of a member being added to the group. Optional.
`Channel` `getChannel()` Return the channel that is related to this ChannelSender
`void` `heartbeat()` A channel heartbeat, use this method to clean up resources
`void` `remove​(Member member)` Notification that a member has been removed or crashed.
`void` `sendMessage​(ChannelMessage message, Member[] destination)` Send a message to one or more recipients.
`void` `setChannel​(Channel channel)` Set the channel that is related to this ChannelSender
`void` `start()` Start the channel sender
`void` `stop()` Stop the channel sender

### Method Detail

#### add

    void add​(Member member)

Notify the sender of a member being added to the group.
Optional. This can be an empty implementation, that does nothing

Parameters:
  `member` - Member

#### remove

    void remove​(Member member)

Notification that a member has been removed or crashed. Can be used to clean up open connections etc

Parameters:
  `member` - Member

#### start

    void start()
        throws java.io.IOException

Start the channel sender

Throws:
  `java.io.IOException` - if preprocessing takes place and an error happens

#### stop

    void stop()

Stop the channel sender

#### heartbeat

    void heartbeat()

A channel heartbeat, use this method to clean up resources

Specified by:
  `heartbeat` in interface `Heartbeat`

#### sendMessage

    void sendMessage​(ChannelMessage message,
                     Member[] destination)
              throws ChannelException

Send a message to one or more recipients.

Parameters:
  `message` - ChannelMessage - the message to be sent
  `destination` - Member[] - the destinations
Throws:
  `ChannelException` - - if an error happens, the ChannelSender MUST report individual send failures on a per member basis, using ChannelException.addFaultyMember
See Also:
  `ChannelException.addFaultyMember(Member,java.lang.Exception)`

#### getChannel

    Channel getChannel()

Return the channel that is related to this ChannelSender

Returns:
  Channel

#### setChannel

    void setChannel​(Channel channel)

Set the channel that is related to this ChannelSender

Parameters:
  `channel` - The channel