asio-grpc v1.6.0
Asynchronous gRPC with Asio/unified executors
|
Function object to coalesce write and send trailing metadata of streaming RPCs. More...
#include <agrpc/rpc.hpp>
Public Member Functions | |
template<class Response , class CompletionToken = agrpc::DefaultCompletionToken> | |
auto | operator() (grpc::ServerAsyncWriter< Response > &writer, const Response &response, grpc::WriteOptions options, CompletionToken &&token={}) const noexcept(detail::IS_NOTRHOW_GRPC_INITIATE_COMPLETION_TOKEN< CompletionToken >) |
Coalesce write and send trailing metadata of a server stream. More... | |
template<class Request , class CompletionToken = agrpc::DefaultCompletionToken> | |
auto | operator() (grpc::ClientAsyncWriter< Request > &writer, const Request &request, grpc::WriteOptions options, CompletionToken &&token={}) const noexcept(detail::IS_NOTRHOW_GRPC_INITIATE_COMPLETION_TOKEN< CompletionToken >) |
Perform write and writes_done in a single step. More... | |
template<class Response , class Request , class CompletionToken = agrpc::DefaultCompletionToken> | |
auto | operator() (grpc::ServerAsyncReaderWriter< Response, Request > &reader_writer, const Response &response, grpc::WriteOptions options, CompletionToken &&token={}) const noexcept(detail::IS_NOTRHOW_GRPC_INITIATE_COMPLETION_TOKEN< CompletionToken >) |
Coalesce write and send trailing metadata of a server stream. More... | |
template<class Request , class Response , class CompletionToken = agrpc::DefaultCompletionToken> | |
auto | operator() (grpc::ClientAsyncReaderWriter< Request, Response > &writer, const Request &request, grpc::WriteOptions options, CompletionToken &&token={}) const noexcept(detail::IS_NOTRHOW_GRPC_INITIATE_COMPLETION_TOKEN< CompletionToken >) |
Perform write and writes_done in a single step. More... | |
Function object to coalesce write and send trailing metadata of streaming RPCs.
The examples below are based on the following .proto file:
Per-Operation Cancellation
None. Operations will be cancelled when the deadline of the RPC has been reached (see grpc::ClientContext::set_deadline) or the call has been cancelled (see grpc::ClientContext::TryCancel and grpc::ServerContext::TryCancel).
|
inlinenoexcept |
Perform write
and writes_done
in a single step.
gRPC does not take ownership or a reference to response, so it is safe to to deallocate once write_last
returns.
Example:
token | A completion token like asio::yield_context or the one created by agrpc::use_sender . The completion signature is void(bool) . true means that the data/metadata/status/etc is going to go to the wire. If it is false , it is not going to the wire because the call is already dead (i.e., canceled, deadline expired, other side dropped the channel, etc). |
|
inlinenoexcept |
Perform write
and writes_done
in a single step.
gRPC does not take ownership or a reference to response, so it is safe to to deallocate once write_last
returns.
Example:
token | A completion token like asio::yield_context or the one created by agrpc::use_sender . The completion signature is void(bool) . true means that the data/metadata/status/etc is going to go to the wire. If it is false , it is not going to the wire because the call is already dead (i.e., canceled, deadline expired, other side dropped the channel, etc). |
|
inlinenoexcept |
Coalesce write and send trailing metadata of a server stream.
write_last
buffers the response. The writing of response is held until finish
is called, where response and trailing metadata are coalesced and write is initiated. Note that write_last
can only buffer response up to the flow control window size. If response size is larger than the window size, it will be sent on wire without buffering.
gRPC does not take ownership or a reference to response, so it is safe to to deallocate once write_last
returns.
Example:
token | A completion token like asio::yield_context or the one created by agrpc::use_sender . The completion signature is void(bool) . true means that the data/metadata/status/etc is going to go to the wire. If it is false , it is not going to the wire because the call is already dead (i.e., canceled, deadline expired, other side dropped the channel, etc). |
|
inlinenoexcept |
Coalesce write and send trailing metadata of a server stream.
write_last
buffers the response. The writing of response is held until finish
is called, where response and trailing metadata are coalesced and write is initiated. Note that write_last
can only buffer response up to the flow control window size. If response size is larger than the window size, it will be sent on wire without buffering.
gRPC does not take ownership or a reference to response, so it is safe to to deallocate once write_last
returns.
Example:
token | A completion token like asio::yield_context or the one created by agrpc::use_sender . The completion signature is void(bool) . true means that the data/metadata/status/etc is going to go to the wire. If it is false , it is not going to the wire because the call is already dead (i.e., canceled, deadline expired, other side dropped the channel, etc). |