userver: server::request::RequestContext Class Reference
Loading...
Searching...
No Matches
server::request::RequestContext Class Referencefinal

#include <userver/server/request/request_context.hpp>

Detailed Description

Public Member Functions

 RequestContext (RequestContext &&) noexcept
 
 RequestContext (const RequestContext &)=delete
 
template<typename Data>
Data & SetUserData (Data data)
 Stores user data if it was not previously stored in this.
 
template<typename Data, typename... Args>
Data & EmplaceUserData (Args &&... args)
 Emplaces user data if it was not previously stored in this.
 
template<typename Data>
Data & GetUserData ()
 
template<typename Data>
const Data & GetUserData () const
 
template<typename Data>
std::remove_reference_t< Data > * GetUserDataOptional ()
 
template<typename Data>
const std::remove_reference_t< Data > * GetUserDataOptional () const
 
void EraseUserData ()
 Erases the user data.
 
template<typename Data>
Data & SetData (std::string name, Data data)
 Stores the data with specified name if it was not previously stored in this.
 
template<typename Data, typename... Args>
Data & EmplaceData (std::string name, Args &&... args)
 Emplaces the data with specified name if it was not previously stored in this.
 
template<typename Data>
Data & GetData (std::string_view name)
 
template<typename Data>
const Data & GetData (std::string_view name) const
 
template<typename Data>
std::remove_reference_t< Data > * GetDataOptional (std::string_view name)
 
template<typename Data>
const std::remove_reference_t< Data > * GetDataOptional (std::string_view name) const
 
void EraseData (std::string_view name)
 Erase data with specified name.
 
void SetHandlerMetricsShard (std::string_view path, utils::statistics::LabelsSpan labels)
 Set the metrics shard (path + labels) for this request. When set, handler metrics will be accumulated on a new subpath "http.handler.path.*" and the provided labels would be set to each metric.
 
impl::InternalRequestContext & GetInternalContext ()
 

Member Function Documentation

◆ EmplaceData()

template<typename Data, typename... Args>
Data & server::request::RequestContext::EmplaceData ( std::string name,
Args &&... args )

Emplaces the data with specified name if it was not previously stored in this.

Exceptions
std::runtime_errorif data with such name was already stored.

Definition at line 199 of file request_context.hpp.

◆ EmplaceUserData()

template<typename Data, typename... Args>
Data & server::request::RequestContext::EmplaceUserData ( Args &&... args)

Emplaces user data if it was not previously stored in this.

Exceptions
std::runtime_errorif user data was already stored.

Definition at line 151 of file request_context.hpp.

◆ EraseData()

void server::request::RequestContext::EraseData ( std::string_view name)
inline

Erase data with specified name.

Definition at line 228 of file request_context.hpp.

◆ EraseUserData()

void server::request::RequestContext::EraseUserData ( )
inline

Erases the user data.

Definition at line 180 of file request_context.hpp.

◆ GetData() [1/2]

template<typename Data>
Data & server::request::RequestContext::GetData ( std::string_view name)
Returns
Stored data with specified name.
Exceptions
std::runtime_errorif no data was stored
std::bad_any_castif data of different type was stored
Examples
samples/postgres_auth/postgres_service.cpp.

Definition at line 206 of file request_context.hpp.

◆ GetData() [2/2]

template<typename Data>
const Data & server::request::RequestContext::GetData ( std::string_view name) const
Returns
Stored data with specified name.
Exceptions
std::runtime_errorif no data was stored
std::bad_any_castif data of different type was stored

Definition at line 211 of file request_context.hpp.

◆ GetDataOptional() [1/2]

template<typename Data>
std::remove_reference_t< Data > * server::request::RequestContext::GetDataOptional ( std::string_view name)
Returns
Stored data with specified name or nullptr if no data found.
Exceptions
std::bad_any_castif data of different type was stored.

Definition at line 217 of file request_context.hpp.

◆ GetDataOptional() [2/2]

template<typename Data>
const std::remove_reference_t< Data > * server::request::RequestContext::GetDataOptional ( std::string_view name) const
Returns
Stored data with specified name or nullptr if no data found.
Exceptions
std::bad_any_castif data of different type was stored.

Definition at line 223 of file request_context.hpp.

◆ GetUserData() [1/2]

template<typename Data>
Data & server::request::RequestContext::GetUserData ( )
Returns
Stored user data
Exceptions
std::runtime_errorif no data was stored
std::bad_any_castif data of different type was stored

Definition at line 158 of file request_context.hpp.

◆ GetUserData() [2/2]

template<typename Data>
const Data & server::request::RequestContext::GetUserData ( ) const
Returns
Stored user data
Exceptions
std::runtime_errorif no data was stored
std::bad_any_castif data of different type was stored

Definition at line 163 of file request_context.hpp.

◆ GetUserDataOptional() [1/2]

template<typename Data>
std::remove_reference_t< Data > * server::request::RequestContext::GetUserDataOptional ( )
Returns
A pointer to data of type Data if it was stored before during current request processing or nullptr otherwise

Definition at line 169 of file request_context.hpp.

◆ GetUserDataOptional() [2/2]

template<typename Data>
const std::remove_reference_t< Data > * server::request::RequestContext::GetUserDataOptional ( ) const
Returns
A pointer to data of type Data if it was stored before during current request processing or nullptr otherwise

Definition at line 175 of file request_context.hpp.

◆ SetData()

template<typename Data>
Data & server::request::RequestContext::SetData ( std::string name,
Data data )

Stores the data with specified name if it was not previously stored in this.

Exceptions
std::runtime_errorif data with such name was already stored.
Examples
samples/postgres_auth/auth_bearer.cpp.

Definition at line 183 of file request_context.hpp.

◆ SetHandlerMetricsShard()

void server::request::RequestContext::SetHandlerMetricsShard ( std::string_view path,
utils::statistics::LabelsSpan labels )

Set the metrics shard (path + labels) for this request. When set, handler metrics will be accumulated on a new subpath "http.handler.path.*" and the provided labels would be set to each metric.

Note
If something (e.g. middleware) interrupts the request before this method is called then the sharded metrics won't be written

◆ SetUserData()

template<typename Data>
Data & server::request::RequestContext::SetUserData ( Data data)

Stores user data if it was not previously stored in this.

Exceptions
std::runtime_errorif user data was already stored.

Definition at line 135 of file request_context.hpp.


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