userver: ugrpc::server::InputStream< Request, Response > Class Template Reference
Loading...
Searching...
No Matches
ugrpc::server::InputStream< Request, Response > Class Template Referencefinal

#include <userver/ugrpc/server/rpc.hpp>

Detailed Description

template<typename Request, typename Response>
class ugrpc::server::InputStream< Request, Response >

Controls a request stream -> single response RPC.

This class is not thread-safe except for GetContext.

The RPC is cancelled on destruction unless the stream has been finished.

If any method throws, further methods must not be called on the same stream, except for GetContext.

Definition at line 145 of file rpc.hpp.

+ Inheritance diagram for ugrpc::server::InputStream< Request, Response >:
+ Collaboration diagram for ugrpc::server::InputStream< Request, Response >:

Public Member Functions

bool Read (Request &request)
 Await and read the next incoming message.
 
void Finish (const Response &response)
 Complete the RPC successfully.
 
void FinishWithError (const grpc::Status &status) override
 Complete the RPC with an error.
 
 InputStream (impl::CallParams &&call_params, impl::RawReader< Request, Response > &stream)
 For internal use only.
 
 InputStream (InputStream &&)=delete
 
InputStreamoperator= (InputStream &&)=delete
 
bool IsFinished () const override
 
- Public Member Functions inherited from ugrpc::server::CallAnyBase
 CallAnyBase (impl::CallParams &&params)
 
grpc::ServerContext & GetContext ()
 
std::string_view GetCallName () const
 Name of the call. Consists of service and method names.
 
tracing::SpanGetSpan ()
 
utils::AnyStorage< StorageContext > & GetStorageContext ()
 Returns call context for storing per-call custom data.
 

Additional Inherited Members

- Protected Member Functions inherited from ugrpc::server::CallAnyBase
ugrpc::impl::RpcStatisticsScope & Statistics ()
 
logging::LoggerRef AccessTskvLogger ()
 
void LogFinish (grpc::Status status) const
 

Constructor & Destructor Documentation

◆ InputStream()

template<typename Request , typename Response >
ugrpc::server::InputStream< Request, Response >::InputStream ( impl::CallParams && call_params,
impl::RawReader< Request, Response > & stream )

For internal use only.

Definition at line 352 of file rpc.hpp.

◆ ~InputStream()

template<typename Request , typename Response >
ugrpc::server::InputStream< Request, Response >::~InputStream ( )

Definition at line 357 of file rpc.hpp.

Member Function Documentation

◆ Finish()

template<typename Request , typename Response >
void ugrpc::server::InputStream< Request, Response >::Finish ( const Response & response)

Complete the RPC successfully.

Finish must not be called multiple times for the same RPC.

Parameters
responsethe single Response to send to the client
Exceptions
ugrpc::server::RpcErroron an RPC error

Definition at line 377 of file rpc.hpp.

◆ FinishWithError()

template<typename Request , typename Response >
void ugrpc::server::InputStream< Request, Response >::FinishWithError ( const grpc::Status & status)
overridevirtual

Complete the RPC with an error.

Finish must not be called multiple times for the same RPC.

Parameters
statuserror details
Exceptions
ugrpc::server::RpcErroron an RPC error

Implements ugrpc::server::CallAnyBase.

Definition at line 388 of file rpc.hpp.

◆ IsFinished()

template<typename Request , typename Response >
bool ugrpc::server::InputStream< Request, Response >::IsFinished ( ) const
overridevirtual

Implements ugrpc::server::CallAnyBase.

Definition at line 401 of file rpc.hpp.

◆ Read()

template<typename Request , typename Response >
bool ugrpc::server::InputStream< Request, Response >::Read ( Request & request)

Await and read the next incoming message.

Parameters
requestwhere to put the request on success
Returns
true on success, false on end-of-input

Definition at line 365 of file rpc.hpp.


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