Package org.apache.catalina.tribes.group
Class RpcChannel
- java.lang.Object
-
- org.apache.catalina.tribes.group.RpcChannel
-
- All Implemented Interfaces:
ChannelListener
public class RpcChannel extends java.lang.Object implements ChannelListener
A channel to handle RPC messaging
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classRpcChannel.RpcCollectorClass that holds all response.static classRpcChannel.RpcCollectorKeyKey used to identify an RPC collector.
-
Field Summary
Fields Modifier and Type Field Description static intALL_REPLYReturn replies from all members.static intFIRST_REPLYReturn the first reply received.static intMAJORITY_REPLYReturn replies from a majority of members.static intNO_REPLYDo not wait for any reply.protected static StringManagersmString 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 booleanaccept(java.io.Serializable msg, Member sender)Invoked by the channel to determine if the listener will process this message or not.voidbreakdown()Remove this channel listener from the channel.RpcCallbackgetCallback()Get the RPC callback handler.ChannelgetChannel()Get the underlying channel.intgetReplyMessageOptions()Get the reply message options.byte[]getRpcId()Get the RPC identifier.voidmessageReceived(java.io.Serializable msg, Member sender)Receive a message from the channelResponse[]send(Member[] destination, java.io.Serializable message, int rpcOptions, int channelOptions, long timeout)Send a message and wait for the response.voidsetCallback(RpcCallback callback)Set the RPC callback handler.voidsetChannel(Channel channel)Set the underlying channel.voidsetReplyMessageOptions(int replyMessageOptions)Set the reply message options.voidsetRpcId(byte[] rpcId)Set the RPC identifier.
-
-
-
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
-
NO_REPLY
public static final int NO_REPLY
Do not wait for any reply.- 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 groupchannel- Channelcallback- 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 frommessage- Serializable - the message you are sending outrpcOptions- int - FIRST_REPLY, MAJORITY_REPLY or ALL_REPLYchannelOptions- channel sender optionstimeout- 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:ChannelListenerReceive a message from the channel- Specified by:
messageReceivedin interfaceChannelListener- Parameters:
msg- Serializablesender- - 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:ChannelListenerInvoked by the channel to determine if the listener will process this message or not.- Specified by:
acceptin interfaceChannelListener- Parameters:
msg- Serializablesender- 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
-
-