org.jgroups.blocks

Class RpcDispatcher

Implemented Interfaces:
ChannelListener, RequestHandler

public class RpcDispatcher
extends MessageDispatcher
implements ChannelListener

Dispatches and receives remote group method calls. Is the equivalent of RpcProtocol on the application rather than protocol level.

Author:
Bela Ban

Nested Class Summary

static interface
RpcDispatcher.Marshaller

Field Summary

protected RpcDispatcher.Marshaller
marshaller
protected Object
server_obj

Fields inherited from class org.jgroups.blocks.MessageDispatcher

adapter, channel, concurrent_processing, corr, deadlock_detection, id, local_addr, log, members, membership_listener, msg_listener, prot_adapter, req_handler, transport_adapter

Constructor Summary

RpcDispatcher(Channel channel, MessageListener l, MembershipListener l2, Object server_obj)
RpcDispatcher(Channel channel, MessageListener l, MembershipListener l2, Object server_obj, boolean deadlock_detection)
RpcDispatcher(Channel channel, MessageListener l, MembershipListener l2, Object server_obj, boolean deadlock_detection, boolean concurrent_processing)
RpcDispatcher(PullPushAdapter adapter, Serializable id, MessageListener l, MembershipListener l2, Object server_obj)

Method Summary

Object
callRemoteMethod(Address dest, String method_name, Object[] args, Class[] types, int mode, long timeout)
Object
callRemoteMethod(Address dest, String method_name, Object[] args, String[] signature, int mode, long timeout)
Object
callRemoteMethod(Address dest, MethodCall method_call, int mode, long timeout)
RspList
callRemoteMethods(Vector dests, String method_name, Object[] args, Class[] types, int mode, long timeout)
RspList
callRemoteMethods(Vector dests, String method_name, Object[] args, String[] signature, int mode, long timeout)
RspList
callRemoteMethods(Vector dests, MethodCall method_call, int mode, long timeout)
RspList
castMessage(Vector dests, Message msg, int mode, long timeout)
void
channelClosed(Channel channel)
void
channelConnected(Channel channel)
void
channelDisconnected(Channel channel)
void
channelReconnected(Address new_addr)
void
channelShunned()
RpcDispatcher.Marshaller
getMarshaller()
String
getName()
Object
handle(Message req)
Message contains MethodCall.
Object
sendMessage(Message msg, int mode, long timeout)
void
setMarshaller(RpcDispatcher.Marshaller m)

Methods inherited from class org.jgroups.blocks.MessageDispatcher

castMessage, castMessage, done, handle, send, sendMessage, setConcurrentProcessing, setDeadlockDetection, setMembershipListener, setMessageListener, setRequestHandler, start, stop

Field Details

marshaller

protected RpcDispatcher.Marshaller marshaller


server_obj

protected Object server_obj

Constructor Details

RpcDispatcher

public RpcDispatcher(Channel channel,
                     MessageListener l,
                     MembershipListener l2,
                     Object server_obj)


RpcDispatcher

public RpcDispatcher(Channel channel,
                     MessageListener l,
                     MembershipListener l2,
                     Object server_obj,
                     boolean deadlock_detection)


RpcDispatcher

public RpcDispatcher(Channel channel,
                     MessageListener l,
                     MembershipListener l2,
                     Object server_obj,
                     boolean deadlock_detection,
                     boolean concurrent_processing)


RpcDispatcher

public RpcDispatcher(PullPushAdapter adapter,
                     Serializable id,
                     MessageListener l,
                     MembershipListener l2,
                     Object server_obj)

Method Details

callRemoteMethod

public Object callRemoteMethod(Address dest,
                               String method_name,
                               Object[] args,
                               Class[] types,
                               int mode,
                               long timeout)
            throws TimeoutException,
                   SuspectedException


callRemoteMethod

public Object callRemoteMethod(Address dest,
                               String method_name,
                               Object[] args,
                               String[] signature,
                               int mode,
                               long timeout)
            throws TimeoutException,
                   SuspectedException


callRemoteMethod

public Object callRemoteMethod(Address dest,
                               MethodCall method_call,
                               int mode,
                               long timeout)
            throws TimeoutException,
                   SuspectedException


callRemoteMethods

public RspList callRemoteMethods(Vector dests,
                                 String method_name,
                                 Object[] args,
                                 Class[] types,
                                 int mode,
                                 long timeout)


callRemoteMethods

public RspList callRemoteMethods(Vector dests,
                                 String method_name,
                                 Object[] args,
                                 String[] signature,
                                 int mode,
                                 long timeout)


callRemoteMethods

public RspList callRemoteMethods(Vector dests,
                                 MethodCall method_call,
                                 int mode,
                                 long timeout)


castMessage

public RspList castMessage(Vector dests,
                           Message msg,
                           int mode,
                           long timeout)
Overrides:
castMessage in interface MessageDispatcher


channelClosed

public void channelClosed(Channel channel)
Specified by:
channelClosed in interface ChannelListener


channelConnected

public void channelConnected(Channel channel)
Specified by:
channelConnected in interface ChannelListener


channelDisconnected

public void channelDisconnected(Channel channel)
Specified by:
channelDisconnected in interface ChannelListener


channelReconnected

public void channelReconnected(Address new_addr)
Specified by:
channelReconnected in interface ChannelListener


channelShunned

public void channelShunned()
Specified by:
channelShunned in interface ChannelListener


getMarshaller

public RpcDispatcher.Marshaller getMarshaller()


getName

public String getName()


handle

public Object handle(Message req)
Message contains MethodCall. Execute it against *this* object and return result. Use MethodCall.invoke() to do this. Return result.
Specified by:
handle in interface RequestHandler
Overrides:
handle in interface MessageDispatcher


sendMessage

public Object sendMessage(Message msg,
                          int mode,
                          long timeout)
            throws TimeoutException,
                   SuspectedException
Overrides:
sendMessage in interface MessageDispatcher


setMarshaller

public void setMarshaller(RpcDispatcher.Marshaller m)


Copyright B) 2001,2002 www.jgroups.com . All Rights Reserved.