userver: userver/ugrpc/server/middlewares/headers_propagator/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/server/middlewares/headers_propagator/component.hpp
4/// @brief @copybrief ugrpc::server::middlewares::headers_propagator::Component
5
6#include <userver/ugrpc/server/middlewares/base.hpp>
7
8USERVER_NAMESPACE_BEGIN
9
10/// Server headers_propagator middleware
11/// @see @ref scripts/docs/en/userver/grpc/server_middlewares.md
12/// @see @ref ugrpc::server::middlewares::headers_propagator::Component
13namespace ugrpc::server::middlewares::headers_propagator {
14
15/// @ingroup userver_components userver_base_classes
16///
17/// @brief Component for gRPC server headers_propagator
18///
19/// ## Static options of ugrpc::server::middlewares::headers_propagator::Component :
20/// @include{doc} scripts/docs/en/components_schema/grpc/src/ugrpc/server/middlewares/headers_propagator/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/// @see @ref scripts/docs/en/userver/grpc/server_middlewares.md
29class Component final : public MiddlewareFactoryComponentBase {
30public:
31 /// @ingroup userver_component_names
32 /// @brief The default name of ugrpc::server::middlewares::headers_propagator::Component
33 static constexpr std::string_view kName = "grpc-server-headers-propagator";
34
35 Component(const components::ComponentConfig& config, const components::ComponentContext& context);
36
37 static yaml_config::Schema GetStaticConfigSchema();
38
39 yaml_config::Schema GetMiddlewareConfigSchema() const override;
40
41 std::shared_ptr<const MiddlewareBase> CreateMiddleware(
42 const ugrpc::server::ServiceInfo&,
43 const yaml_config::YamlConfig& middleware_config
44 ) const override;
45};
46
47} // namespace ugrpc::server::middlewares::headers_propagator
48
49template <>
50inline constexpr bool components::kHasValidate<ugrpc::server::middlewares::headers_propagator::Component> = true;
51
52template <>
53inline constexpr auto components::kConfigFileMode<
54 ugrpc::server::middlewares::headers_propagator::Component> = ConfigFileMode::kNotRequired;
55
56USERVER_NAMESPACE_END