userver: userver/ugrpc/server/middlewares/pipeline.hpp Source File
Loading...
Searching...
No Matches
pipeline.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/ugrpc/server/middlewares/pipeline.hpp
4/// @brief @copybrief ugrpc::server::MiddlewarePipelineComponent
5
6#include <string_view>
7
8#include <userver/middlewares/pipeline.hpp>
9
10#include <userver/ugrpc/server/middlewares/base.hpp>
11
12USERVER_NAMESPACE_BEGIN
13
14namespace ugrpc::server {
15
16/// @ingroup userver_components userver_grpc_server_middlewares
17///
18/// @brief Component to create middlewares pipeline.
19///
20/// You must register your server middleware in this component.
21/// Use `MiddlewareDependencyBuilder` to set a dependency of your middleware from others.
22///
23/// ## Static options of ugrpc::server::MiddlewarePipelineComponent :
24/// @include{doc} scripts/docs/en/components_schema/core/src/middlewares/pipeline.md
25///
26/// Options inherited from @ref components::ComponentBase :
27/// @include{doc} scripts/docs/en/components_schema/core/src/components/impl/component_base.md
28///
29/// ## Static config example
30///
31/// @snippet grpc/functional_tests/middleware_server/static_config.yaml middleware pipeline component config
32
33class MiddlewarePipelineComponent final : public USERVER_NAMESPACE::middlewares::impl::AnyMiddlewarePipelineComponent {
34public:
35 /// @ingroup userver_component_names
36 /// @brief The default name of ugrpc::middlewares::MiddlewarePipelineComponent for the server side.
37 static constexpr std::string_view kName = "grpc-server-middlewares-pipeline";
38
39 MiddlewarePipelineComponent(const components::ComponentConfig& config, const components::ComponentContext& context);
40};
41
42} // namespace ugrpc::server
43
44template <>
45inline constexpr bool components::kHasValidate<ugrpc::server::MiddlewarePipelineComponent> = true;
46
47template <>
48inline constexpr auto
49 components::kConfigFileMode<ugrpc::server::MiddlewarePipelineComponent> = ConfigFileMode::kNotRequired;
50
51USERVER_NAMESPACE_END