]>
git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/thrift/lib/java/src/org/apache/thrift/TBaseProcessor.java
1 package org
.apache
.thrift
;
3 import java
.util
.Collections
;
6 import org
.apache
.thrift
.protocol
.TMessage
;
7 import org
.apache
.thrift
.protocol
.TMessageType
;
8 import org
.apache
.thrift
.protocol
.TProtocol
;
9 import org
.apache
.thrift
.protocol
.TProtocolUtil
;
10 import org
.apache
.thrift
.protocol
.TType
;
12 public abstract class TBaseProcessor
<I
> implements TProcessor
{
13 private final I iface
;
14 private final Map
<String
,ProcessFunction
<I
, ?
extends TBase
>> processMap
;
16 protected TBaseProcessor(I iface
, Map
<String
, ProcessFunction
<I
, ?
extends TBase
>> processFunctionMap
) {
18 this.processMap
= processFunctionMap
;
21 public Map
<String
,ProcessFunction
<I
, ?
extends TBase
>> getProcessMapView() {
22 return Collections
.unmodifiableMap(processMap
);
26 public void process(TProtocol in
, TProtocol out
) throws TException
{
27 TMessage msg
= in
.readMessageBegin();
28 ProcessFunction fn
= processMap
.get(msg
.name
);
30 TProtocolUtil
.skip(in
, TType
.STRUCT
);
32 TApplicationException x
= new TApplicationException(TApplicationException
.UNKNOWN_METHOD
, "Invalid method name: '"+msg
.name
+"'");
33 out
.writeMessageBegin(new TMessage(msg
.name
, TMessageType
.EXCEPTION
, msg
.seqid
));
35 out
.writeMessageEnd();
36 out
.getTransport().flush();
38 fn
.process(msg
.seqid
, in
, out
, iface
);