|
|
|
@ -97,7 +97,8 @@ grpc::string GetHeaderPrologue(const grpc::protobuf::FileDescriptor *file, |
|
|
|
|
vars["filename_base"] = grpc_generator::StripProto(file->name()); |
|
|
|
|
|
|
|
|
|
printer.Print(vars, "// Generated by the gRPC protobuf plugin.\n"); |
|
|
|
|
printer.Print(vars, "// If you make any local change, they will be lost.\n"); |
|
|
|
|
printer.Print(vars, |
|
|
|
|
"// If you make any local change, they will be lost.\n"); |
|
|
|
|
printer.Print(vars, "// source: $filename$\n"); |
|
|
|
|
printer.Print(vars, "#ifndef GRPC_$filename_identifier$__INCLUDED\n"); |
|
|
|
|
printer.Print(vars, "#define GRPC_$filename_identifier$__INCLUDED\n"); |
|
|
|
@ -142,10 +143,10 @@ grpc::string GetHeaderIncludes(const grpc::protobuf::FileDescriptor *file, |
|
|
|
|
return temp; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void PrintHeaderClientMethodInterfaces(grpc::protobuf::io::Printer *printer, |
|
|
|
|
const grpc::protobuf::MethodDescriptor *method, |
|
|
|
|
std::map<grpc::string, grpc::string> *vars, |
|
|
|
|
bool is_public) { |
|
|
|
|
void PrintHeaderClientMethodInterfaces( |
|
|
|
|
grpc::protobuf::io::Printer *printer, |
|
|
|
|
const grpc::protobuf::MethodDescriptor *method, |
|
|
|
|
std::map<grpc::string, grpc::string> *vars, bool is_public) { |
|
|
|
|
(*vars)["Method"] = method->name(); |
|
|
|
|
(*vars)["Request"] = |
|
|
|
|
grpc_cpp_generator::ClassName(method->input_type(), true); |
|
|
|
@ -158,19 +159,17 @@ void PrintHeaderClientMethodInterfaces(grpc::protobuf::io::Printer *printer, |
|
|
|
|
*vars, |
|
|
|
|
"virtual ::grpc::Status $Method$(::grpc::ClientContext* context, " |
|
|
|
|
"const $Request$& request, $Response$* response) = 0;\n"); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"std::unique_ptr< " |
|
|
|
|
"::grpc::ClientAsyncResponseReaderInterface< $Response$>> " |
|
|
|
|
"Async$Method$(::grpc::ClientContext* context, " |
|
|
|
|
"const $Request$& request, " |
|
|
|
|
"::grpc::CompletionQueue* cq) {\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"std::unique_ptr< " |
|
|
|
|
"::grpc::ClientAsyncResponseReaderInterface< $Response$>> " |
|
|
|
|
"Async$Method$(::grpc::ClientContext* context, " |
|
|
|
|
"const $Request$& request, " |
|
|
|
|
"::grpc::CompletionQueue* cq) {\n"); |
|
|
|
|
printer->Indent(); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"return std::unique_ptr< " |
|
|
|
|
"::grpc::ClientAsyncResponseReaderInterface< $Response$>>(" |
|
|
|
|
"Async$Method$Raw(context, request, cq));\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"return std::unique_ptr< " |
|
|
|
|
"::grpc::ClientAsyncResponseReaderInterface< $Response$>>(" |
|
|
|
|
"Async$Method$Raw(context, request, cq));\n"); |
|
|
|
|
printer->Outdent(); |
|
|
|
|
printer->Print("}\n"); |
|
|
|
|
} else if (ClientOnlyStreaming(method)) { |
|
|
|
@ -189,14 +188,14 @@ void PrintHeaderClientMethodInterfaces(grpc::protobuf::io::Printer *printer, |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"std::unique_ptr< ::grpc::ClientAsyncWriterInterface< $Request$>>" |
|
|
|
|
" Async$Method$(::grpc::ClientContext* context, $Response$* response, " |
|
|
|
|
" Async$Method$(::grpc::ClientContext* context, $Response$* " |
|
|
|
|
"response, " |
|
|
|
|
"::grpc::CompletionQueue* cq, void* tag) {\n"); |
|
|
|
|
printer->Indent(); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"return std::unique_ptr< " |
|
|
|
|
"::grpc::ClientAsyncWriterInterface< $Request$>>(" |
|
|
|
|
"Async$Method$Raw(context, response, cq, tag));\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"return std::unique_ptr< " |
|
|
|
|
"::grpc::ClientAsyncWriterInterface< $Request$>>(" |
|
|
|
|
"Async$Method$Raw(context, response, cq, tag));\n"); |
|
|
|
|
printer->Outdent(); |
|
|
|
|
printer->Print("}\n"); |
|
|
|
|
} else if (ServerOnlyStreaming(method)) { |
|
|
|
@ -219,18 +218,17 @@ void PrintHeaderClientMethodInterfaces(grpc::protobuf::io::Printer *printer, |
|
|
|
|
"::grpc::ClientContext* context, const $Request$& request, " |
|
|
|
|
"::grpc::CompletionQueue* cq, void* tag) {\n"); |
|
|
|
|
printer->Indent(); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"return std::unique_ptr< " |
|
|
|
|
"::grpc::ClientAsyncReaderInterface< $Response$>>(" |
|
|
|
|
"Async$Method$Raw(context, request, cq, tag));\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"return std::unique_ptr< " |
|
|
|
|
"::grpc::ClientAsyncReaderInterface< $Response$>>(" |
|
|
|
|
"Async$Method$Raw(context, request, cq, tag));\n"); |
|
|
|
|
printer->Outdent(); |
|
|
|
|
printer->Print("}\n"); |
|
|
|
|
} else if (BidiStreaming(method)) { |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"std::unique_ptr< ::grpc::ClientReaderWriterInterface< $Request$, $Response$>> " |
|
|
|
|
"$Method$(::grpc::ClientContext* context) {\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"std::unique_ptr< ::grpc::ClientReaderWriterInterface< " |
|
|
|
|
"$Request$, $Response$>> " |
|
|
|
|
"$Method$(::grpc::ClientContext* context) {\n"); |
|
|
|
|
printer->Indent(); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
@ -268,12 +266,11 @@ void PrintHeaderClientMethodInterfaces(grpc::protobuf::io::Printer *printer, |
|
|
|
|
"virtual ::grpc::ClientWriterInterface< $Request$>*" |
|
|
|
|
" $Method$Raw(" |
|
|
|
|
"::grpc::ClientContext* context, $Response$* response) = 0;\n"); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"virtual ::grpc::ClientAsyncWriterInterface< $Request$>*" |
|
|
|
|
" Async$Method$Raw(::grpc::ClientContext* context, " |
|
|
|
|
"$Response$* response, " |
|
|
|
|
"::grpc::CompletionQueue* cq, void* tag) = 0;\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"virtual ::grpc::ClientAsyncWriterInterface< $Request$>*" |
|
|
|
|
" Async$Method$Raw(::grpc::ClientContext* context, " |
|
|
|
|
"$Response$* response, " |
|
|
|
|
"::grpc::CompletionQueue* cq, void* tag) = 0;\n"); |
|
|
|
|
} else if (ServerOnlyStreaming(method)) { |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
@ -286,16 +283,15 @@ void PrintHeaderClientMethodInterfaces(grpc::protobuf::io::Printer *printer, |
|
|
|
|
"::grpc::ClientContext* context, const $Request$& request, " |
|
|
|
|
"::grpc::CompletionQueue* cq, void* tag) = 0;\n"); |
|
|
|
|
} else if (BidiStreaming(method)) { |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"virtual ::grpc::ClientReaderWriterInterface< $Request$, $Response$>* " |
|
|
|
|
"$Method$Raw(::grpc::ClientContext* context) = 0;\n"); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"virtual ::grpc::ClientAsyncReaderWriterInterface< " |
|
|
|
|
"$Request$, $Response$>* " |
|
|
|
|
"Async$Method$Raw(::grpc::ClientContext* context, " |
|
|
|
|
"::grpc::CompletionQueue* cq, void* tag) = 0;\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"virtual ::grpc::ClientReaderWriterInterface< $Request$, " |
|
|
|
|
"$Response$>* " |
|
|
|
|
"$Method$Raw(::grpc::ClientContext* context) = 0;\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"virtual ::grpc::ClientAsyncReaderWriterInterface< " |
|
|
|
|
"$Request$, $Response$>* " |
|
|
|
|
"Async$Method$Raw(::grpc::ClientContext* context, " |
|
|
|
|
"::grpc::CompletionQueue* cq, void* tag) = 0;\n"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -322,11 +318,10 @@ void PrintHeaderClientMethod(grpc::protobuf::io::Printer *printer, |
|
|
|
|
"const $Request$& request, " |
|
|
|
|
"::grpc::CompletionQueue* cq) {\n"); |
|
|
|
|
printer->Indent(); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"return std::unique_ptr< " |
|
|
|
|
"::grpc::ClientAsyncResponseReader< $Response$>>(" |
|
|
|
|
"Async$Method$Raw(context, request, cq));\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"return std::unique_ptr< " |
|
|
|
|
"::grpc::ClientAsyncResponseReader< $Response$>>(" |
|
|
|
|
"Async$Method$Raw(context, request, cq));\n"); |
|
|
|
|
printer->Outdent(); |
|
|
|
|
printer->Print("}\n"); |
|
|
|
|
} else if (ClientOnlyStreaming(method)) { |
|
|
|
@ -336,17 +331,16 @@ void PrintHeaderClientMethod(grpc::protobuf::io::Printer *printer, |
|
|
|
|
" $Method$(" |
|
|
|
|
"::grpc::ClientContext* context, $Response$* response) {\n"); |
|
|
|
|
printer->Indent(); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"return std::unique_ptr< ::grpc::ClientWriter< $Request$>>" |
|
|
|
|
"($Method$Raw(context, response));\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"return std::unique_ptr< ::grpc::ClientWriter< $Request$>>" |
|
|
|
|
"($Method$Raw(context, response));\n"); |
|
|
|
|
printer->Outdent(); |
|
|
|
|
printer->Print("}\n"); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"std::unique_ptr< ::grpc::ClientAsyncWriter< $Request$>>" |
|
|
|
|
" Async$Method$(::grpc::ClientContext* context, $Response$* response, " |
|
|
|
|
"::grpc::CompletionQueue* cq, void* tag) {\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"std::unique_ptr< ::grpc::ClientAsyncWriter< $Request$>>" |
|
|
|
|
" Async$Method$(::grpc::ClientContext* context, " |
|
|
|
|
"$Response$* response, " |
|
|
|
|
"::grpc::CompletionQueue* cq, void* tag) {\n"); |
|
|
|
|
printer->Indent(); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
@ -386,53 +380,47 @@ void PrintHeaderClientMethod(grpc::protobuf::io::Printer *printer, |
|
|
|
|
"std::unique_ptr< ::grpc::ClientReaderWriter< $Request$, $Response$>>" |
|
|
|
|
" $Method$(::grpc::ClientContext* context) {\n"); |
|
|
|
|
printer->Indent(); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"return std::unique_ptr< " |
|
|
|
|
"::grpc::ClientReaderWriter< $Request$, $Response$>>(" |
|
|
|
|
"$Method$Raw(context));\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"return std::unique_ptr< " |
|
|
|
|
"::grpc::ClientReaderWriter< $Request$, $Response$>>(" |
|
|
|
|
"$Method$Raw(context));\n"); |
|
|
|
|
printer->Outdent(); |
|
|
|
|
printer->Print("}\n"); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"std::unique_ptr< ::grpc::ClientAsyncReaderWriter< " |
|
|
|
|
"$Request$, $Response$>> " |
|
|
|
|
"Async$Method$(::grpc::ClientContext* context, " |
|
|
|
|
"::grpc::CompletionQueue* cq, void* tag) {\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"std::unique_ptr< ::grpc::ClientAsyncReaderWriter< " |
|
|
|
|
"$Request$, $Response$>> " |
|
|
|
|
"Async$Method$(::grpc::ClientContext* context, " |
|
|
|
|
"::grpc::CompletionQueue* cq, void* tag) {\n"); |
|
|
|
|
printer->Indent(); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"return std::unique_ptr< " |
|
|
|
|
"::grpc::ClientAsyncReaderWriter< $Request$, $Response$>>(" |
|
|
|
|
"Async$Method$Raw(context, cq, tag));\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"return std::unique_ptr< " |
|
|
|
|
"::grpc::ClientAsyncReaderWriter< $Request$, $Response$>>(" |
|
|
|
|
"Async$Method$Raw(context, cq, tag));\n"); |
|
|
|
|
printer->Outdent(); |
|
|
|
|
printer->Print("}\n"); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
if (NoStreaming(method)) { |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"::grpc::ClientAsyncResponseReader< $Response$>* " |
|
|
|
|
"Async$Method$Raw(::grpc::ClientContext* context, " |
|
|
|
|
"const $Request$& request, " |
|
|
|
|
"::grpc::CompletionQueue* cq) GRPC_OVERRIDE;\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"::grpc::ClientAsyncResponseReader< $Response$>* " |
|
|
|
|
"Async$Method$Raw(::grpc::ClientContext* context, " |
|
|
|
|
"const $Request$& request, " |
|
|
|
|
"::grpc::CompletionQueue* cq) GRPC_OVERRIDE;\n"); |
|
|
|
|
} else if (ClientOnlyStreaming(method)) { |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"::grpc::ClientWriter< $Request$>* $Method$Raw(" |
|
|
|
|
"::grpc::ClientContext* context, $Response$* response) " |
|
|
|
|
"GRPC_OVERRIDE;\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"::grpc::ClientWriter< $Request$>* $Method$Raw(" |
|
|
|
|
"::grpc::ClientContext* context, $Response$* response) " |
|
|
|
|
"GRPC_OVERRIDE;\n"); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"::grpc::ClientAsyncWriter< $Request$>* Async$Method$Raw(" |
|
|
|
|
"::grpc::ClientContext* context, $Response$* response, " |
|
|
|
|
"::grpc::CompletionQueue* cq, void* tag) GRPC_OVERRIDE;\n"); |
|
|
|
|
} else if (ServerOnlyStreaming(method)) { |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"::grpc::ClientReader< $Response$>* $Method$Raw(" |
|
|
|
|
"::grpc::ClientContext* context, const $Request$& request)" |
|
|
|
|
" GRPC_OVERRIDE;\n"); |
|
|
|
|
printer->Print(*vars, |
|
|
|
|
"::grpc::ClientReader< $Response$>* $Method$Raw(" |
|
|
|
|
"::grpc::ClientContext* context, const $Request$& request)" |
|
|
|
|
" GRPC_OVERRIDE;\n"); |
|
|
|
|
printer->Print( |
|
|
|
|
*vars, |
|
|
|
|
"::grpc::ClientAsyncReader< $Response$>* Async$Method$Raw(" |
|
|
|
@ -630,7 +618,7 @@ grpc::string GetHeaderServices(const grpc::protobuf::FileDescriptor *file, |
|
|
|
|
const Parameters ¶ms) { |
|
|
|
|
grpc::string output; |
|
|
|
|
{ |
|
|
|
|
// Scope the output stream so it closes and finalizes output to the string.
|
|
|
|
|
// Scope the output stream so it closes and finalizes output to the string.
|
|
|
|
|
grpc::protobuf::io::StringOutputStream output_stream(&output); |
|
|
|
|
grpc::protobuf::io::Printer printer(&output_stream, '$'); |
|
|
|
|
std::map<grpc::string, grpc::string> vars; |
|
|
|
@ -694,7 +682,8 @@ grpc::string GetSourcePrologue(const grpc::protobuf::FileDescriptor *file, |
|
|
|
|
vars["filename_base"] = grpc_generator::StripProto(file->name()); |
|
|
|
|
|
|
|
|
|
printer.Print(vars, "// Generated by the gRPC protobuf plugin.\n"); |
|
|
|
|
printer.Print(vars, "// If you make any local change, they will be lost.\n"); |
|
|
|
|
printer.Print(vars, |
|
|
|
|
"// If you make any local change, they will be lost.\n"); |
|
|
|
|
printer.Print(vars, "// source: $filename$\n\n"); |
|
|
|
|
printer.Print(vars, "#include \"$filename_base$.pb.h\"\n"); |
|
|
|
|
printer.Print(vars, "#include \"$filename_base$.grpc.pb.h\"\n"); |
|
|
|
|