MCPcopy Create free account
hub / github.com/Tradias/asio-grpc / ServerStreaming

Method ServerStreaming

example/snippets/server_callback.cpp:83–101  ·  view source on GitHub ↗

[server-rpc-server-streaming-callback] */

Source from the content-addressed store, hash-verified

81
82 /* [server-rpc-server-streaming-callback] */
83 grpc::ServerWriteReactor<example::v1::Response>* ServerStreaming(grpc::CallbackServerContext*,
84 const example::v1::Request* request) override
85 {
86 auto ptr = agrpc::make_reactor<agrpc::ServerWriteReactor<example::v1::Response>>(get_executor());
87 auto& rpc = *ptr;
88 auto response = std::make_unique<example::v1::Response>();
89 response->set_integer(request->integer());
90 rpc.initiate_write(*response);
91 rpc.wait_for_write(
92 [ptr = std::move(ptr), response = std::move(response)](const error_code&, bool ok)
93 {
94 if (!ok)
95 {
96 return;
97 }
98 ptr->initiate_finish(grpc::Status::OK);
99 });
100 return rpc.get();
101 }
102 /* [server-rpc-server-streaming-callback] */
103
104 /* [server-rpc-bidi-streaming-callback] */

Callers

nothing calls this directly

Calls 5

moveFunction · 0.85
initiate_writeMethod · 0.45
wait_for_writeMethod · 0.45
initiate_finishMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected