#include <userver/ugrpc/client/rpc.hpp>
Controls a single request -> response stream RPC.
This class is not thread-safe except for GetContext
.
The RPC is cancelled on destruction unless the stream is closed (Read
has returned false
). In that case the connection is not closed (it will be reused for new RPCs), and the server receives RpcInterruptedError
immediately. gRPC provides no way to early-close a server-streaming RPC gracefully.
If any method throws, further methods must not be called on the same stream, except for GetContext
.
Public Member Functions | |
bool | Read (Response &response) |
Await and read the next incoming message. | |
InputStream (InputStream &&) noexcept=default | |
InputStream & | operator= (InputStream &&) noexcept=default |
Public Member Functions inherited from ugrpc::client::CallAnyBase | |
grpc::ClientContext & | GetContext () |
std::string_view | GetClientName () const |
std::string_view | GetCallName () const |
tracing::Span & | GetSpan () |
Additional Inherited Members | |
Protected Member Functions inherited from ugrpc::client::CallAnyBase | |
impl::RpcData & | GetData () |
bool ugrpc::client::InputStream< Response >::Read | ( | Response & | response | ) |
Await and read the next incoming message.
On end-of-input, Finish
is called automatically.
response | where to put response on success |
true
on success, false
on end-of-input or task cancellation ugrpc::client::RpcError | on an RPC error |