Package org.jgroups.mux
Class Multiplexer
- java.lang.Object
-
- org.jgroups.mux.Multiplexer
-
- All Implemented Interfaces:
UpHandler
public class Multiplexer extends java.lang.Object implements UpHandler
The multiplexer allows multiple channel interfaces to be associated with one underlying instance of JChannel.The multiplexer is essentially a building block residing on top of a JChannel providing multiplexing functionality to N instances of MuxChannel. Since MuxChannel extends the JGroups JChannel class, user applications are completely unaware of this change in the underlying plumbing.
Each JGroups application sharing a channel through a multiplexer has to create a MuxChannel with a unique application id. The multiplexer keeps track of all registered applications and tags messages belonging to a specific application with that id for sent messages. When receiving a message from a remote peer, the multiplexer will dispatch a message to the appropriate MuxChannel depending on the id attached to the message.
- Version:
- $Id: Multiplexer.java,v 1.85.2.17 2009/03/16 21:18:41 vlada Exp $
- Author:
- Bela Ban, Vladimir Blagojevic
- See Also:
MuxChannel
,Channel
-
-
Field Summary
Fields Modifier and Type Field Description protected long
service_ack_timeout
-
Constructor Summary
Constructors Constructor Description Multiplexer(JChannel channel)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description boolean
close()
void
closeAll()
Channel
createMuxChannel(java.lang.String id, java.lang.String stack_name)
protected java.util.concurrent.ThreadPoolExecutor
createThreadPool()
java.util.Set
getApplicationIds()
Deprecated.Use ${link #getServiceIds()} insteadlong
getServiceAckTimeout()
java.util.Set<java.lang.String>
getServiceIds()
long
getServicesResponseTimeout()
void
registerForStateTransfer(java.lang.String appl_id, java.lang.String substate_id)
protected MuxChannel
removeService(java.lang.String id)
void
setServiceAckTimeout(long service_ack_timeout)
void
setServicesResponseTimeout(long services_rsp_timeout)
protected void
shutdownThreadPool()
java.lang.Object
up(Event evt)
Remove mux header and dispatch to correct MuxChannel
-
-
-
Constructor Detail
-
Multiplexer
public Multiplexer(JChannel channel)
-
-
Method Detail
-
getApplicationIds
public java.util.Set getApplicationIds()
Deprecated.Use ${link #getServiceIds()} instead- Returns:
- The set of service IDs
-
getServiceIds
public java.util.Set<java.lang.String> getServiceIds()
-
getServicesResponseTimeout
public long getServicesResponseTimeout()
-
setServicesResponseTimeout
public void setServicesResponseTimeout(long services_rsp_timeout)
-
getServiceAckTimeout
public long getServiceAckTimeout()
-
setServiceAckTimeout
public void setServiceAckTimeout(long service_ack_timeout)
-
registerForStateTransfer
public void registerForStateTransfer(java.lang.String appl_id, java.lang.String substate_id)
-
createThreadPool
protected java.util.concurrent.ThreadPoolExecutor createThreadPool()
-
shutdownThreadPool
protected void shutdownThreadPool()
-
up
public java.lang.Object up(Event evt)
Remove mux header and dispatch to correct MuxChannel
-
createMuxChannel
public Channel createMuxChannel(java.lang.String id, java.lang.String stack_name) throws java.lang.Exception
- Throws:
java.lang.Exception
-
removeService
protected MuxChannel removeService(java.lang.String id)
-
close
public boolean close()
-
closeAll
public void closeAll()
-
-