userver: ugrpc::server::CallContext Class Reference
Loading...
Searching...
No Matches
ugrpc::server::CallContext Class Reference

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

Detailed Description

gRPC call context

Definition at line 19 of file call_context.hpp.

+ Inheritance diagram for ugrpc::server::CallContext:

Public Member Functions

grpc::ServerContext & GetServerContext ()
 
std::string_view GetCallName () const
 Name of the RPC in the format full.path.ServiceName/MethodName
 
std::string_view GetServiceName () const
 Get name of gRPC service.
 
std::string_view GetMethodName () const
 Get name of called gRPC method.
 
tracing::SpanGetSpan ()
 Get the span of the current RPC.
 
utils::AnyStorage< StorageContext > & GetStorageContext ()
 Returns call context for storing per-call custom data.
 

Member Function Documentation

◆ GetServerContext()

grpc::ServerContext & ugrpc::server::CallContext::GetServerContext ( )
Returns
the ServerContext used for this RPC

◆ GetStorageContext()

utils::AnyStorage< StorageContext > & ugrpc::server::CallContext::GetStorageContext ( )

Returns call context for storing per-call custom data.

The context can be used to pass data from server middleware to client handler or from one middleware to another one.

Example usage:

In authentication middleware:

if (password_is_correct) {
// Username is authenticated, set it in per-call storage context
ctx.GetCall().GetStorageContext().Emplace(kAuthUsername, username);
}

In client handler:

const auto& username = context.GetStorageContext().Get(kAuthUsername);
auto msg = fmt::format("Hello, {}!", username);

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