Class Multiplexer

java.lang.Object
org.jgroups.mux.Multiplexer
All Implemented Interfaces:
UpHandler

public class Multiplexer extends 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:
  • Field Details

    • service_ack_timeout

      protected long service_ack_timeout
  • Constructor Details

    • Multiplexer

      public Multiplexer(JChannel channel)
  • Method Details

    • getApplicationIds

      public Set getApplicationIds()
      Deprecated.
      Use ${link #getServiceIds()} instead
      Returns:
      The set of service IDs
    • getServiceIds

      public Set<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(String appl_id, String substate_id)
    • createThreadPool

      protected ThreadPoolExecutor createThreadPool()
    • shutdownThreadPool

      protected void shutdownThreadPool()
    • up

      public Object up(Event evt)
      Remove mux header and dispatch to correct MuxChannel
      Specified by:
      up in interface UpHandler
      Parameters:
      evt -
      Returns:
    • createMuxChannel

      public Channel createMuxChannel(String id, String stack_name) throws Exception
      Throws:
      Exception
    • removeService

      protected MuxChannel removeService(String id)
    • close

      public boolean close()
    • closeAll

      public void closeAll()