org.apache.thrift
Class TMultiplexedProcessor
java.lang.Object
org.apache.thrift.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 |
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 |
TMultiplexedProcessor
public TMultiplexedProcessor()
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:
- 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.
- 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? :)