@@ -223,9 +223,9 @@ std::string ImportInludeFromProtoName(const std::string& proto_name, const std::
223223std::string GetHeaderCallMethodFunction (const grpc::protobuf::MethodDescriptor* method) {
224224 std::stringstream output;
225225
226- output << " bool Call" << method->name () << " (\n " ;
227- output << Tabs (2 ) << " const " << StubTypeFromService (method->service ()) << " stub,\n " ;
228- output << Tabs (2 ) << " const " << CppNameFromProtoName (method->input_type ()->full_name ()) << " & request,\n " ;
226+ output << " grpc::Status Call" << method->name () << " (\n " ;
227+ output << Tabs (2 ) << " const " << StubTypeFromService (method->service ()) << " & stub,\n " ;
228+ output << Tabs (2 ) << CppNameFromProtoName (method->input_type ()->full_name ()) << " & request,\n " ;
229229 output << Tabs (2 ) << CppNameFromProtoName (method->output_type ()->full_name ()) << " * response);\n " ;
230230
231231 return output.str ();
@@ -234,27 +234,21 @@ std::string GetHeaderCallMethodFunction(const grpc::protobuf::MethodDescriptor*
234234std::string GetSourceCallMethodFunction (const grpc::protobuf::MethodDescriptor* method) {
235235 std::stringstream output;
236236
237- output << " bool Call" << method->name () << " (\n " ;
238- output << Tabs (2 ) << " const " << StubTypeFromService (method->service ()) << " stub,\n " ;
239- output << Tabs (2 ) << " const " << CppNameFromProtoName (method->input_type ()->full_name ()) << " & request,\n " ;
237+ output << " grpc::Status Call" << method->name () << " (\n " ;
238+ output << Tabs (2 ) << " const " << StubTypeFromService (method->service ()) << " & stub,\n " ;
239+ output << Tabs (2 ) << CppNameFromProtoName (method->input_type ()->full_name ()) << " & request,\n " ;
240240 output << Tabs (2 ) << CppNameFromProtoName (method->output_type ()->full_name ()) << " * response) {\n " ;
241241
242242 output << Tabs (1 ) << " grpc::ClientContext context;\n " ;
243- output << Tabs (1 ) << " bool result;\n " ;
243+ output << Tabs (1 ) << " grpc::Status result;\n " ;
244+ output << Tabs (1 ) << " bool done = false;\n " ;
244245 output << Tabs (1 ) << " std::mutex mu;\n " ;
245246 output << Tabs (1 ) << " std::condition_variable cv;\n " ;
246- output << Tabs (1 ) << " bool done = false;\n " ;
247247 output << Tabs (1 ) << " stub->async()->" << method->name () << " (\n " ;
248248 output << Tabs (2 ) << " &context, &request, response,\n " ;
249249 output << Tabs (2 ) << " [&result, &mu, &cv, &done, response](grpc::Status status) {\n " ;
250- output << Tabs (3 ) << " bool ret;" ;
251- output << Tabs (3 ) << " if (!status.ok()) {\n " ;
252- output << Tabs (4 ) << " ret = false;\n " ;
253- output << Tabs (3 ) << " } else {\n " ;
254- output << Tabs (4 ) << " ret = true;\n " ;
255- output << Tabs (3 ) << " }\n " ;
250+ output << Tabs (3 ) << " result = std::move(status);\n " ;
256251 output << Tabs (3 ) << " std::lock_guard<std::mutex> lock(mu);\n " ;
257- output << Tabs (3 ) << " result = ret;\n " ;
258252 output << Tabs (3 ) << " done = true;\n " ;
259253 output << Tabs (3 ) << " cv.notify_one();\n " ;
260254 output << Tabs (2 ) << " });\n " ;
@@ -330,8 +324,8 @@ std::string GetSourceIncludes(const grpc::protobuf::FileDescriptor* file) {
330324
331325 output << ImportInludeFromProtoName (file->name (), " .grpc-ext.pb.h" );
332326 output << " \n " ;
333- output << " #include <mutex>\n " ;
334327 output << " #include <condition_variable>\n " ;
328+ output << " #include <mutex>\n " ;
335329 output << " \n " ;
336330
337331
0 commit comments