Class RpcChannel

java.lang.Object
org.apache.catalina.tribes.group.RpcChannel
All Implemented Interfaces:
ChannelListener

public class RpcChannel extends Object implements ChannelListener
A channel to handle RPC messaging
  • Field Details

    • sm

      protected static final StringManager sm
      String manager for this class.
    • FIRST_REPLY

      public static final int FIRST_REPLY
      Return the first reply received.
      See Also:
    • MAJORITY_REPLY

      public static final int MAJORITY_REPLY
      Return replies from a majority of members.
      See Also:
    • ALL_REPLY

      public static final int ALL_REPLY
      Return replies from all members.
      See Also:
    • NO_REPLY

      public static final int NO_REPLY
      Do not wait for any reply.
      See Also:
  • Constructor Details

    • RpcChannel

      public RpcChannel(byte[] rpcId, Channel channel, RpcCallback callback)
      Create an RPC channel. You can have several RPC channels attached to a group all separated out by the uniqueness
      Parameters:
      rpcId - - the unique Id for this RPC group
      channel - Channel
      callback - RpcCallback
  • Method Details

    • send

      public Response[] send(Member[] destination, Serializable message, int rpcOptions, int channelOptions, long timeout) throws ChannelException
      Send a message and wait for the response.
      Parameters:
      destination - Member[] - the destination for the message, and the members you request a reply from
      message - Serializable - the message you are sending out
      rpcOptions - int - FIRST_REPLY, MAJORITY_REPLY or ALL_REPLY
      channelOptions - channel sender options
      timeout - long - timeout in milliseconds, if no reply is received within this time null is returned
      Returns:
      Response[] - an array of response objects.
      Throws:
      ChannelException - Error sending message
    • messageReceived

      public void messageReceived(Serializable msg, Member sender)
      Description copied from interface: ChannelListener
      Receive a message from the channel
      Specified by:
      messageReceived in interface ChannelListener
      Parameters:
      msg - Serializable
      sender - - the source of the message
    • breakdown

      public void breakdown()
      Remove this channel listener from the channel.
    • accept

      public boolean accept(Serializable msg, Member sender)
      Description copied from interface: ChannelListener
      Invoked by the channel to determine if the listener will process this message or not.
      Specified by:
      accept in interface ChannelListener
      Parameters:
      msg - Serializable
      sender - Member
      Returns:
      boolean
    • getChannel

      public Channel getChannel()
      Get the underlying channel.
      Returns:
      the channel
    • getCallback

      public RpcCallback getCallback()
      Get the RPC callback handler.
      Returns:
      the callback
    • getRpcId

      public byte[] getRpcId()
      Get the RPC identifier.
      Returns:
      the RPC ID
    • setChannel

      public void setChannel(Channel channel)
      Set the underlying channel.
      Parameters:
      channel - the channel
    • setCallback

      public void setCallback(RpcCallback callback)
      Set the RPC callback handler.
      Parameters:
      callback - the callback
    • setRpcId

      public void setRpcId(byte[] rpcId)
      Set the RPC identifier.
      Parameters:
      rpcId - the RPC ID
    • getReplyMessageOptions

      public int getReplyMessageOptions()
      Get the reply message options.
      Returns:
      the reply message options
    • setReplyMessageOptions

      public void setReplyMessageOptions(int replyMessageOptions)
      Set the reply message options.
      Parameters:
      replyMessageOptions - the reply message options