Class RpcChannel

  • All Implemented Interfaces:
    ChannelListener

    public class RpcChannel
    extends java.lang.Object
    implements ChannelListener
    A channel to handle RPC messaging
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int ALL_REPLY
      Return replies from all members.
      static int FIRST_REPLY
      Return the first reply received.
      static int MAJORITY_REPLY
      Return replies from a majority of members.
      static int NO_REPLY
      Do not wait for any reply.
      protected static StringManager sm
      String manager for this class.
    • Constructor Summary

      Constructors 
      Constructor Description
      RpcChannel​(byte[] rpcId, Channel channel, RpcCallback callback)
      Create an RPC channel.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean accept​(java.io.Serializable msg, Member sender)
      Invoked by the channel to determine if the listener will process this message or not.
      void breakdown()
      Remove this channel listener from the channel.
      RpcCallback getCallback()
      Get the RPC callback handler.
      Channel getChannel()
      Get the underlying channel.
      int getReplyMessageOptions()
      Get the reply message options.
      byte[] getRpcId()
      Get the RPC identifier.
      void messageReceived​(java.io.Serializable msg, Member sender)
      Receive a message from the channel
      Response[] send​(Member[] destination, java.io.Serializable message, int rpcOptions, int channelOptions, long timeout)
      Send a message and wait for the response.
      void setCallback​(RpcCallback callback)
      Set the RPC callback handler.
      void setChannel​(Channel channel)
      Set the underlying channel.
      void setReplyMessageOptions​(int replyMessageOptions)
      Set the reply message options.
      void setRpcId​(byte[] rpcId)
      Set the RPC identifier.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • 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:
        Constant Field Values
      • MAJORITY_REPLY

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

        public static final int ALL_REPLY
        Return replies from all members.
        See Also:
        Constant Field Values
    • Constructor Detail

      • 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 Detail

      • send

        public Response[] send​(Member[] destination,
                               java.io.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​(java.io.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​(java.io.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