Class 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 Detail

      • service_ack_timeout

        protected long service_ack_timeout
    • 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
        Specified by:
        up in interface UpHandler
        Parameters:
        evt -
        Returns:
      • 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()