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

Be able to specify FCUnaryService just like AsyncService so that all

relevant methods get treated this way.
parent 581097fe
No related branches found
No related tags found
No related merge requests found
......@@ -826,6 +826,22 @@ void PrintHeaderService(Printer *printer, const Service *service,
PrintHeaderServerMethodFCUnary(printer, service->method(i).get(), vars);
}
printer->Print("typedef ");
for (int i = 0; i < service->method_count(); ++i) {
(*vars)["method_name"] = service->method(i).get()->name();
if (service->method(i)->NoStreaming()) {
printer->Print(*vars, "WithFCUnaryMethod_$method_name$<");
}
}
printer->Print("Service");
for (int i = 0; i < service->method_count(); ++i) {
if (service->method(i)->NoStreaming()) {
printer->Print(" >");
}
}
printer->Print(" FCUnaryService;\n");
printer->Outdent();
printer->Print("};\n");
printer->Print(service->GetTrailingComments().c_str());
......
......@@ -454,6 +454,40 @@ TEST_F(HybridEnd2endTest, AsyncRequestStreamResponseStream_SyncFCUnaryDupService
request_stream_handler_thread.join();
}
// Add a second service that is fully FCUnary
class FullyFCUnaryDupPkg : public duplicate::EchoTestService::FCUnaryService {
public:
Status FCEcho(ServerContext* context, FCUnary<EchoRequest,EchoResponse>* fc_unary) GRPC_OVERRIDE {
EchoRequest req;
EchoResponse resp;
uint32_t next_msg_sz;
fc_unary->NextMessageSize(&next_msg_sz);
gpr_log(GPR_INFO, "FC Unary Next Message Size is %u", next_msg_sz);
GPR_ASSERT(fc_unary->Read(&req));
resp.set_message(req.message() + "_dup");
GPR_ASSERT(fc_unary->Write(resp));
return Status::OK;
}
};
TEST_F(HybridEnd2endTest, AsyncRequestStreamResponseStream_SyncFullyFCUnaryDupService) {
typedef EchoTestService::WithAsyncMethod_RequestStream<
EchoTestService::WithAsyncMethod_ResponseStream<TestServiceImpl>>
SType;
SType service;
FullyFCUnaryDupPkg dup_service;
SetUpServer(&service, &dup_service, nullptr, 8192);
ResetStub();
std::thread response_stream_handler_thread(HandleServerStreaming<SType>,
&service, cqs_[0].get());
std::thread request_stream_handler_thread(HandleClientStreaming<SType>,
&service, cqs_[1].get());
TestAllMethods();
SendEchoToDupService();
response_stream_handler_thread.join();
request_stream_handler_thread.join();
}
// Add a second service with one async method.
TEST_F(HybridEnd2endTest, AsyncRequestStreamResponseStream_AsyncDupService) {
typedef EchoTestService::WithAsyncMethod_RequestStream<
......
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