userver: userver/ugrpc/server/middlewares/headers_propagator/component.hpp Source File
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
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:
20/// Name | Description | Default value
21/// ---- | ----------- | -------------
22/// headers | array of metadata fields (headers) to propagate | empty
23///
24/// @see @ref scripts/docs/en/userver/grpc/server_middlewares.md
25
26class Component final : public MiddlewareFactoryComponentBase {
27public:
28 /// @ingroup userver_component_names
29 /// @brief The default name of ugrpc::server::middlewares::headers_propagator::Component
30 static constexpr std::string_view kName = "grpc-server-headers-propagator";
31
32 Component(const components::ComponentConfig& config, const components::ComponentContext& context);
33
34 static yaml_config::Schema GetStaticConfigSchema();
35
36 yaml_config::Schema GetMiddlewareConfigSchema() const override;
37
38 std::shared_ptr<const MiddlewareBase> CreateMiddleware(
39 const ugrpc::server::ServiceInfo&,
40 const yaml_config::YamlConfig& middleware_config
41 ) const override;
42};
43
44} // namespace ugrpc::server::middlewares::headers_propagator
45
46template <>
47inline constexpr bool components::kHasValidate<ugrpc::server::middlewares::headers_propagator::Component> = true;
48
49template <>
50inline constexpr auto components::kConfigFileMode<ugrpc::server::middlewares::headers_propagator::Component> =
52
53USERVER_NAMESPACE_END