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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(Member member)` Notify the sender of a member being added to the group.
    `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 IOException

      Start the channel sender
      Throws:
        `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

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.