userver: userver/ugrpc/client/middlewares/origin/component.hpp Source File
Loading...
Searching...
No Matches
component.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/ugrpc/client/middlewares/origin/component.hpp
4/// @brief @copybrief ugrpc::client::middlewares::origin::Component
5
6#include <userver/ugrpc/client/middlewares/base.hpp>
7
8USERVER_NAMESPACE_BEGIN
9
10/// Server origin middleware
11/// @see @ref scripts/docs/en/userver/grpc/client_middlewares.md
12namespace ugrpc::client::middlewares::origin {
13
14/// @ingroup userver_components
15///
16/// @brief gRPC client middleware that sets `x-origin` metadata. gRPC server will then copy that to `useragent` tag
17/// in server request log.
18///
19/// ## Static options of ugrpc::client::middlewares::origin::Component :
20/// @include{doc} scripts/docs/en/components_schema/grpc/src/ugrpc/client/middlewares/origin/component.md
21///
22/// Options inherited from @ref middlewares::MiddlewareFactoryComponentBase :
23/// @include{doc} scripts/docs/en/components_schema/core/src/middlewares/factory_component_base.md
24///
25/// Options inherited from @ref components::ComponentBase :
26/// @include{doc} scripts/docs/en/components_schema/core/src/components/impl/component_base.md
27///
28/// Config example:
29/// @snippet samples/grpc_middleware_service/configs/static_config.yaml grpc-client-origin
30///
31/// @see @ref scripts/docs/en/userver/grpc/client_middlewares.md
32class Component final : public MiddlewareFactoryComponentBase {
33public:
34 /// @ingroup userver_component_names
35 /// @brief The default name of ugrpc::client::middlewares::origin::Component.
36 static constexpr std::string_view kName = "grpc-client-origin";
37
38 Component(const components::ComponentConfig& config, const components::ComponentContext& context);
39
40 ~Component() override;
41
42 static yaml_config::Schema GetStaticConfigSchema();
43
45
46 std::shared_ptr<const MiddlewareBase> CreateMiddleware(
47 const ugrpc::client::ClientInfo&,
48 const yaml_config::YamlConfig& middleware_config
49 ) const override;
50};
51
52} // namespace ugrpc::client::middlewares::origin
53
54USERVER_NAMESPACE_END