Skip to content
Snippets Groups Projects
Commit 7f715707 authored by Vijay Pai's avatar Vijay Pai
Browse files

Some changes required to make C++ code generator plugin work fine for

external code compiled under gcc-4.4 : eliminate use of nullptr, primarily.
parent b1004103
No related branches found
No related tags found
No related merge requests found
...@@ -585,7 +585,7 @@ void PrintHeaderService(grpc::protobuf::io::Printer *printer, ...@@ -585,7 +585,7 @@ void PrintHeaderService(grpc::protobuf::io::Printer *printer,
"class Service : public ::grpc::SynchronousService {\n" "class Service : public ::grpc::SynchronousService {\n"
" public:\n"); " public:\n");
printer->Indent(); printer->Indent();
printer->Print("Service() : service_(nullptr) {}\n"); printer->Print("Service();\n");
printer->Print("virtual ~Service();\n"); printer->Print("virtual ~Service();\n");
for (int i = 0; i < service->method_count(); ++i) { for (int i = 0; i < service->method_count(); ++i) {
PrintHeaderServerMethodSync(printer, service->method(i), vars); PrintHeaderServerMethodSync(printer, service->method(i), vars);
...@@ -594,7 +594,7 @@ void PrintHeaderService(grpc::protobuf::io::Printer *printer, ...@@ -594,7 +594,7 @@ void PrintHeaderService(grpc::protobuf::io::Printer *printer,
printer->Outdent(); printer->Outdent();
printer->Print( printer->Print(
" private:\n" " private:\n"
" ::grpc::RpcService* service_;\n"); " std::unique_ptr< ::grpc::RpcService> service_;\n");
printer->Print("};\n"); printer->Print("};\n");
// Server side - Asynchronous // Server side - Asynchronous
...@@ -1013,9 +1013,11 @@ void PrintSourceService(grpc::protobuf::io::Printer *printer, ...@@ -1013,9 +1013,11 @@ void PrintSourceService(grpc::protobuf::io::Printer *printer,
"$prefix$$Service$_method_names, $MethodCount$) " "$prefix$$Service$_method_names, $MethodCount$) "
"{}\n\n"); "{}\n\n");
printer->Print(*vars,
"$ns$$Service$::Service::Service() {\n"
"}\n\n");
printer->Print(*vars, printer->Print(*vars,
"$ns$$Service$::Service::~Service() {\n" "$ns$$Service$::Service::~Service() {\n"
" delete service_;\n"
"}\n\n"); "}\n\n");
for (int i = 0; i < service->method_count(); ++i) { for (int i = 0; i < service->method_count(); ++i) {
(*vars)["Idx"] = as_string(i); (*vars)["Idx"] = as_string(i);
...@@ -1026,10 +1028,10 @@ void PrintSourceService(grpc::protobuf::io::Printer *printer, ...@@ -1026,10 +1028,10 @@ void PrintSourceService(grpc::protobuf::io::Printer *printer,
"::grpc::RpcService* $ns$$Service$::Service::service() {\n"); "::grpc::RpcService* $ns$$Service$::Service::service() {\n");
printer->Indent(); printer->Indent();
printer->Print( printer->Print(
"if (service_ != nullptr) {\n" "if (service_) {\n"
" return service_;\n" " return service_.get();\n"
"}\n"); "}\n");
printer->Print("service_ = new ::grpc::RpcService();\n"); printer->Print("service_ = std::unique_ptr< ::grpc::RpcService>(new ::grpc::RpcService());\n");
for (int i = 0; i < service->method_count(); ++i) { for (int i = 0; i < service->method_count(); ++i) {
const grpc::protobuf::MethodDescriptor *method = service->method(i); const grpc::protobuf::MethodDescriptor *method = service->method(i);
(*vars)["Idx"] = as_string(i); (*vars)["Idx"] = as_string(i);
...@@ -1077,7 +1079,7 @@ void PrintSourceService(grpc::protobuf::io::Printer *printer, ...@@ -1077,7 +1079,7 @@ void PrintSourceService(grpc::protobuf::io::Printer *printer,
" std::mem_fn(&$ns$$Service$::Service::$Method$), this)));\n"); " std::mem_fn(&$ns$$Service$::Service::$Method$), this)));\n");
} }
} }
printer->Print("return service_;\n"); printer->Print("return service_.get();\n");
printer->Outdent(); printer->Outdent();
printer->Print("}\n\n"); printer->Print("}\n\n");
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment