CPP_TRANSPORT = CPP_TRANSPORT_NS+"::TTransport"
CPP_TRANSPORTP = CPP_SP.substitute(klass=CPP_TRANSPORT)
+CPP_PROTOCOL_TSTOP = CPP_PROTOCOL_NS+"::T_STOP"
+CPP_PROTOCOL_TTYPE = CPP_PROTOCOL_NS+"::TType"
+CPP_PROTOCOL_MESSAGE_TYPE = CPP_PROTOCOL_NS+"::TMessageType"
+CPP_PROTOCOL_CALL = CPP_PROTOCOL_NS+"::T_CALL"
+CPP_PROTOCOL_REPLY = CPP_PROTOCOL_NS+"::T_REPLY"
+
+CPP_TTYPE_MAP = {
+ STOP_TYPE : CPP_PROTOCOL_NS+"::T_STOP",
+ VOID_TYPE : CPP_PROTOCOL_NS+"::T_VOID",
+ BOOL_TYPE : CPP_PROTOCOL_NS+"::T_BOOL",
+ UTF7_TYPE : CPP_PROTOCOL_NS+"::T_UTF7",
+ UTF7_TYPE : CPP_PROTOCOL_NS+"::T_UTF7",
+ UTF8_TYPE : CPP_PROTOCOL_NS+"::T_UTF8",
+ UTF16_TYPE : CPP_PROTOCOL_NS+"::T_UTF16",
+ U08_TYPE : CPP_PROTOCOL_NS+"::T_U08",
+ I08_TYPE : CPP_PROTOCOL_NS+"::T_I08",
+ I16_TYPE : CPP_PROTOCOL_NS+"::T_I16",
+ I32_TYPE : CPP_PROTOCOL_NS+"::T_I32",
+ I64_TYPE : CPP_PROTOCOL_NS+"::T_I64",
+ U08_TYPE : CPP_PROTOCOL_NS+"::T_U08",
+ U16_TYPE : CPP_PROTOCOL_NS+"::T_U16",
+ U32_TYPE : CPP_PROTOCOL_NS+"::T_U32",
+ U64_TYPE : CPP_PROTOCOL_NS+"::T_U64",
+ FLOAT_TYPE : CPP_PROTOCOL_NS+"::T_FLOAT",
+ StructType : CPP_PROTOCOL_NS+"::T_STRUCT",
+ ListType : CPP_PROTOCOL_NS+"::T_LIST",
+ MapType : CPP_PROTOCOL_NS+"::T_MAP",
+ SetType : CPP_PROTOCOL_NS+"::T_SET"
+}
+
+
CPP_SERVER_FUNCTION_DECLARATION = Template(""" void process_${function}(uint32_t seqid, """+CPP_TRANSPORTP+""" itrans, """+CPP_TRANSPORTP+""" otrans);
""")
${argsStructReader};
- iprot->readMessageEnd(itrans);
+ _iprot->readMessageEnd(itrans);
${returnValueDeclaration};
${returnToResult};
- oprot->writeMessageBegin(otrans, """+CPP_PROTOCOL_REPLY+""", seqid);
+ _oprot->writeMessageBegin(otrans, \"${function}\", """+CPP_PROTOCOL_REPLY+""", seqid);
${resultStructWriter};
- oprot->writeMessaeEnd(otrans);
+ _oprot->writeMessageEnd(otrans);
otrans->flush();
}
std::string name;
- """+CPP_MESSAGE_TYPE+""" messageType;
+ """+CPP_PROTOCOL_MESSAGE_TYPE+""" messageType;
uint32_t seqid;
- _iprot->readMessageBegin(_itrans, name, messageType, cseqid);
+ _iprot->readMessageBegin(itrans, name, messageType, seqid);
if(messageType == """+CPP_PROTOCOL_CALL+""") {
${callProcessSwitch}
}
""")
-CPP_PROTOCOL_TSTOP = CPP_PROTOCOL_NS+"::T_STOP"
-CPP_PROTOCOL_TTYPE = CPP_PROTOCOL_NS+"::TType"
-CPP_PROTOCOL_MESSAGE_TYPE = CPP_PROTOCOL_NS+"::TMessageType"
-CPP_PROTOCOL_CALL = CPP_PROTOCOL_NS+"::T_CALL"
-CPP_PROTOCOL_REPLY = CPP_PROTOCOL_NS+"::T_REPLY"
-
-CPP_TTYPE_MAP = {
- STOP_TYPE : CPP_PROTOCOL_NS+"::T_STOP",
- VOID_TYPE : CPP_PROTOCOL_NS+"::T_VOID",
- BOOL_TYPE : CPP_PROTOCOL_NS+"::T_BOOL",
- UTF7_TYPE : CPP_PROTOCOL_NS+"::T_UTF7",
- UTF7_TYPE : CPP_PROTOCOL_NS+"::T_UTF7",
- UTF8_TYPE : CPP_PROTOCOL_NS+"::T_UTF8",
- UTF16_TYPE : CPP_PROTOCOL_NS+"::T_UTF16",
- U08_TYPE : CPP_PROTOCOL_NS+"::T_U08",
- I08_TYPE : CPP_PROTOCOL_NS+"::T_I08",
- I16_TYPE : CPP_PROTOCOL_NS+"::T_I16",
- I32_TYPE : CPP_PROTOCOL_NS+"::T_I32",
- I64_TYPE : CPP_PROTOCOL_NS+"::T_I64",
- U08_TYPE : CPP_PROTOCOL_NS+"::T_U08",
- U16_TYPE : CPP_PROTOCOL_NS+"::T_U16",
- U32_TYPE : CPP_PROTOCOL_NS+"::T_U32",
- U64_TYPE : CPP_PROTOCOL_NS+"::T_U64",
- FLOAT_TYPE : CPP_PROTOCOL_NS+"::T_FLOAT",
- StructType : CPP_PROTOCOL_NS+"::T_STRUCT",
- ListType : CPP_PROTOCOL_NS+"::T_LIST",
- MapType : CPP_PROTOCOL_NS+"::T_MAP",
- SetType : CPP_PROTOCOL_NS+"::T_SET"
-}
-
def toWireType(ttype):
if isinstance(ttype, PrimitiveType):
${returnDeclaration} ${service}Client::${function}(${argsDeclaration}) {
uint32_t xfer = 0;
+ std::string name;
"""+CPP_PROTOCOL_MESSAGE_TYPE+""" messageType;
uint32_t cseqid = 0;
uint32_t rseqid = 0;
- _oprot->writeMessageBegin(_otrans, """+CPP_PROTOCOL_CALL+""", cseqid);
+ _oprot->writeMessageBegin(_otrans, \"${function}\", """+CPP_PROTOCOL_CALL+""", cseqid);
${argsStructDeclaration};
_otrans->flush();
- _iprot->readMessageBegin(_itrans, messageType, rseqid);
+ _iprot->readMessageBegin(_itrans, name, messageType, rseqid);
if(messageType != """+CPP_PROTOCOL_REPLY+""" ||
rseqid != cseqid) {
for function in service.functionList:
result+= toServerFunctionDefinition(service.name, function, debugp)
-
- callProcessSwitch = "if"+string.join(["(name.compare(\""+function.name+"\") == 0) {"+toServerProcessFunctionCall(function)+";}" for function in service.functionList], "\n else if")
+ callProcessSwitch = " if"+string.join(["(name.compare(\""+function.name+"\") == 0) { process_"+function.name+"(seqid, itrans, otrans);}" for function in service.functionList], "\n else if")+"\n else {throw "+CPP_EXCEPTION+"(\"Unknown function name \\\"\"+name+\"\\\"\");}"
- result+= CPP_SERVER_PROCESS_DEFINITION(service=service.name, callProcessSwitch=callProcessSwitch)
+ result+= CPP_SERVER_PROCESS_DEFINITION.substitute(service=service.name, callProcessSwitch=callProcessSwitch)
return result