userver: ugrpc::client::ResponseFuture< Response > Class Template Reference
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
ugrpc::client::ResponseFuture< Response > Class Template Referencefinal

#include <userver/ugrpc/client/response_future.hpp>

Detailed Description

template<typename Response>
class ugrpc::client::ResponseFuture< Response >

Controls a single request -> single response RPC.

This class is not thread-safe, it cannot be used from multiple tasks at the same time.

The RPC is cancelled on destruction unless the RPC is already finished. In that case the connection is not closed (it will be reused for new RPCs), and the server receives RpcInterruptedError immediately.

Definition at line 20 of file response_future.hpp.

Public Member Functions

 ResponseFuture (ResponseFuture &&) noexcept=default
 
ResponseFutureoperator= (ResponseFuture &&) noexcept=default
 
bool IsReady () const noexcept
 Checks if the asynchronous call has completed Note, that once user gets result, IsReady should not be called.
 
engine::FutureStatus WaitUntil (engine::Deadline deadline) const
 Await response until specified timepoint.
 
Response Get ()
 Await and read the response.
 
CallAnyBaseGetCall ()
 Get the original gRPC Call, useful e.g. for accessing metadata.
 
const CallAnyBaseGetCall () const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 

Member Function Documentation

◆ Get()

template<typename Response>
Response ugrpc::client::ResponseFuture< Response >::Get ( )
inline

Await and read the response.

Get should not be called multiple times for the same UnaryFuture.

The connection is not closed, it will be reused for new RPCs.

Returns
the response on success
Exceptions
ugrpc::client::RpcErroron an RPC error
ugrpc::client::RpcCancelledErroron task cancellation

Definition at line 48 of file response_future.hpp.

◆ GetCall() [1/2]

template<typename Response>
CallAnyBase & ugrpc::client::ResponseFuture< Response >::GetCall ( )
inline

Get the original gRPC Call, useful e.g. for accessing metadata.

Definition at line 51 of file response_future.hpp.

◆ GetCall() [2/2]

template<typename Response>
const CallAnyBase & ugrpc::client::ResponseFuture< Response >::GetCall ( ) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 54 of file response_future.hpp.

◆ IsReady()

template<typename Response>
bool ugrpc::client::ResponseFuture< Response >::IsReady ( ) const
inlinenodiscardnoexcept

Checks if the asynchronous call has completed Note, that once user gets result, IsReady should not be called.

Returns
true if result ready

Definition at line 30 of file response_future.hpp.

◆ WaitUntil()

template<typename Response>
engine::FutureStatus ugrpc::client::ResponseFuture< Response >::WaitUntil ( engine::Deadline deadline) const
inlinenodiscard

Await response until specified timepoint.

Exceptions
ugrpc::client::RpcErroron an RPC error

Definition at line 35 of file response_future.hpp.


The documentation for this class was generated from the following file: