Class TMultiplexedProcessor

  • All Implemented Interfaces:
    TProcessor

    public class TMultiplexedProcessor
    extends java.lang.Object
    implements TProcessor
    TMultiplexedProcessor is a TProcessor allowing a single TServer to provide multiple services.

    To do so, you instantiate the processor and then register additional processors with it, as shown in the following example:

    TMultiplexedProcessor processor = new TMultiplexedProcessor(); processor.registerProcessor( "Calculator", new Calculator.Processor(new CalculatorHandler())); processor.registerProcessor( "WeatherReport", new WeatherReport.Processor(new WeatherReportHandler())); TServerTransport t = new TServerSocket(9090); TSimpleServer server = new TSimpleServer(processor, t); server.serve();
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean process​(TProtocol iprot, TProtocol oprot)
      This implementation of process performs the following steps: Read the beginning of the message. Extract the service name from the message. Using the service name to locate the appropriate processor. Dispatch to the processor, with a decorated instance of TProtocol that allows readMessageBegin() to return the original TMessage.
      void registerProcessor​(java.lang.String serviceName, TProcessor processor)
      'Register' a service with this TMultiplexedProcessor.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • TMultiplexedProcessor

        public TMultiplexedProcessor()
    • Method Detail

      • registerProcessor

        public void registerProcessor​(java.lang.String serviceName,
                                      TProcessor processor)
        'Register' a service with this TMultiplexedProcessor. This allows us to broker requests to individual services by using the service name to select them at request time.
        Parameters:
        serviceName - Name of a service, has to be identical to the name declared in the Thrift IDL, e.g. "WeatherReport".
        processor - Implementation of a service, ususally referred to as "handlers", e.g. WeatherReportHandler implementing WeatherReport.Iface.
      • process

        public boolean process​(TProtocol iprot,
                               TProtocol oprot)
                        throws TException
        This implementation of process performs the following steps:
        1. Read the beginning of the message.
        2. Extract the service name from the message.
        3. Using the service name to locate the appropriate processor.
        4. Dispatch to the processor, with a decorated instance of TProtocol that allows readMessageBegin() to return the original TMessage.
        Specified by:
        process in interface TProcessor
        Throws:
        TException - If the message type is not CALL or ONEWAY, if the service name was not found in the message, or if the service name was not found in the service map. You called registerProcessor during initialization, right? :)