#include <userver/server/request/request_context.hpp>
Stores request-specific data during request processing.
For example: you can store some data in HandleRequestThrow() method and access this data in GetResponseDataForLogging() method.
Definition at line 26 of file request_context.hpp.
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 () noexcept |
| 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) noexcept |
| 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 () noexcept |
| Data & server::request::RequestContext::EmplaceData | ( | std::string | name, |
| Args &&... | args ) |
Emplaces the data with specified name if it was not previously stored in this.
| std::runtime_error | if data with such name was already stored. |
Definition at line 199 of file request_context.hpp.
| Data & server::request::RequestContext::EmplaceUserData | ( | Args &&... | args | ) |
Emplaces user data if it was not previously stored in this.
| std::runtime_error | if user data was already stored. |
Definition at line 151 of file request_context.hpp.
|
inlinenoexcept |
Erase data with specified name.
Definition at line 228 of file request_context.hpp.
|
inlinenoexcept |
Erases the user data.
Definition at line 180 of file request_context.hpp.
| Data & server::request::RequestContext::GetData | ( | std::string_view | name | ) |
| std::runtime_error | if no data was stored |
| std::bad_any_cast | if data of different type was stored |
Definition at line 206 of file request_context.hpp.
| const Data & server::request::RequestContext::GetData | ( | std::string_view | name | ) | const |
| std::runtime_error | if no data was stored |
| std::bad_any_cast | if data of different type was stored |
Definition at line 211 of file request_context.hpp.
| std::remove_reference_t< Data > * server::request::RequestContext::GetDataOptional | ( | std::string_view | name | ) |
| std::bad_any_cast | if data of different type was stored. |
Definition at line 217 of file request_context.hpp.
| const std::remove_reference_t< Data > * server::request::RequestContext::GetDataOptional | ( | std::string_view | name | ) | const |
| std::bad_any_cast | if data of different type was stored. |
Definition at line 223 of file request_context.hpp.
| Data & server::request::RequestContext::GetUserData | ( | ) |
| std::runtime_error | if no data was stored |
| std::bad_any_cast | if data of different type was stored |
Definition at line 158 of file request_context.hpp.
| const Data & server::request::RequestContext::GetUserData | ( | ) | const |
| std::runtime_error | if no data was stored |
| std::bad_any_cast | if data of different type was stored |
Definition at line 163 of file request_context.hpp.
| std::remove_reference_t< Data > * server::request::RequestContext::GetUserDataOptional | ( | ) |
Definition at line 169 of file request_context.hpp.
| const std::remove_reference_t< Data > * server::request::RequestContext::GetUserDataOptional | ( | ) | const |
Definition at line 175 of file request_context.hpp.
| Data & server::request::RequestContext::SetData | ( | std::string | name, |
| Data | data ) |
Stores the data with specified name if it was not previously stored in this.
| std::runtime_error | if data with such name was already stored. |
Definition at line 183 of file request_context.hpp.
| 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.
| Data & server::request::RequestContext::SetUserData | ( | Data | data | ) |
Stores user data if it was not previously stored in this.
| std::runtime_error | if user data was already stored. |
Definition at line 135 of file request_context.hpp.