org.jgroups.blocks.mux

## Class MuxRpcDispatcher

- java.lang.Object
- - org.jgroups.blocks.MessageDispatcher
  - - org.jgroups.blocks.RpcDispatcher
    - - org.jgroups.blocks.mux.MuxRpcDispatcher

All Implemented Interfaces:
  RequestHandler, ChannelListener

    public class MuxRpcDispatcher
    extends RpcDispatcher

A multiplexed message dispatcher. When used in conjunction with a MuxUpHandler, allows multiple dispatchers to use the same channel.
Usage:
`Channel c = new JChannel(...);
c.setUpHandler(new MuxUpHandler());
RpcDispatcher d1 = new MuxRpcDispatcher((short) 1, c, ...);
RpcDispatcher d2 = new MuxRpcDispatcher((short) 2, c, ...);
c.connect(...);
`

Author:
  Bela Ban, Paul Ferraro

### Nested Class Summary

### Nested classes/interfaces inherited from class org.jgroups.blocks.RpcDispatcher

`RpcDispatcher.Marshaller, RpcDispatcher.Marshaller2, RpcDispatcher.MarshallerAdapter`

### Field Summary

### Fields inherited from class org.jgroups.blocks.RpcDispatcher

`additionalChannelListeners, method_lookup, req_marshaller, rsp_marshaller, server_obj`

### Fields inherited from class org.jgroups.blocks.MessageDispatcher

`adapter, channel, corr, handler, hardware_multicast_supported, id, local_addr, log, members, membership_listener, msg_listener, prot_adapter, req_handler, transport_adapter`

### Constructor Summary

Constructors
Constructor and Description
`MuxRpcDispatcher(short scopeId)`
`MuxRpcDispatcher(short scopeId, Channel channel, MessageListener messageListener, MembershipListener membershipListener, java.lang.Object serverObject)`

### Method Summary

Methods
`protected GroupRequest` `cast(java.util.Collection<Address> dests, Message msg, RequestOptions options, boolean blockForResults)`
`protected RequestCorrelator` `createRequestCorrelator(java.lang.Object transport, RequestHandler handler, Address localAddr)`
`void` `start()`
`void` `stop()`

### Methods inherited from class org.jgroups.blocks.RpcDispatcher

`addChannelListener, callRemoteMethod, callRemoteMethod, callRemoteMethod, callRemoteMethod, callRemoteMethod, callRemoteMethod, callRemoteMethod, callRemoteMethods, callRemoteMethods, callRemoteMethods, callRemoteMethods, callRemoteMethods, callRemoteMethods, callRemoteMethods, callRemoteMethods, callRemoteMethodsWithFuture, callRemoteMethodsWithFuture, callRemoteMethodsWithFuture, callRemoteMethodWithFuture, callRemoteMethodWithFuture, callRemoteMethodWithFuture, channelClosed, channelConnected, channelDisconnected, channelReconnected, channelShunned, correlatorStarted, getMarshaller, getMethodLookup, getName, getRequestMarshaller, getResponseMarshaller, getServerObject, handle, removeChannelListener, setMarshaller, setMethodLookup, setRequestMarshaller, setResponseMarshaller, setServerObject`

### Methods inherited from class org.jgroups.blocks.MessageDispatcher

`castMessage, castMessage, castMessage, castMessage, castMessageWithFuture, castMessageWithFuture, done, getChannel, getConcurrentProcessing, getDeadlockDetection, getMembers, getMessageListener, getProtocolAdapter, installUpHandler, send, sendMessage, sendMessage, sendMessageWithFuture, sendMessageWithFuture, setChannel, setConcurrentProcessing, setDeadlockDetection, setMembershipListener, setMessageListener, setRequestHandler`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### MuxRpcDispatcher

    public MuxRpcDispatcher(short scopeId)

#### MuxRpcDispatcher

    public MuxRpcDispatcher(short scopeId,
                    Channel channel,
                    MessageListener messageListener,
                    MembershipListener membershipListener,
                    java.lang.Object serverObject)

### Method Detail

#### createRequestCorrelator

    protected RequestCorrelator createRequestCorrelator(java.lang.Object transport,
                                            RequestHandler handler,
                                            Address localAddr)

Overrides:
  `createRequestCorrelator` in class `MessageDispatcher`

#### start

    public void start()

Overrides:
  `start` in class `MessageDispatcher`

#### stop

    public void stop()

Overrides:
  `stop` in class `MessageDispatcher`

#### cast

    protected GroupRequest cast(java.util.Collection<Address> dests,
                    Message msg,
                    RequestOptions options,
                    boolean blockForResults)

Overrides:
  `cast` in class `MessageDispatcher`