8#include <userver/components/component_base.hpp>
9#include <userver/engine/task/task_processor_fwd.hpp>
10#include <userver/middlewares/runner.hpp>
11#include <userver/utils/box.hpp>
12#include <userver/yaml_config/fwd.hpp>
14#include <userver/ugrpc/server/middlewares/fwd.hpp>
15#include <userver/ugrpc/server/service_base.hpp>
17USERVER_NAMESPACE_BEGIN
19namespace ugrpc::server {
29using MiddlewareRunnerComponentBase = USERVER_NAMESPACE::middlewares::RunnerComponentBase<MiddlewareBase, ServiceInfo>;
47 ServiceComponentBase(
const components::ComponentConfig& config,
const components::ComponentContext& context);
49 ~ServiceComponentBase() override;
62 ServerComponent& server_;
63 ServiceConfig config_;
64 std::atomic<
bool> registered_{
false};
65 utils::
Box<ServiceInfo> info_;
70template <
typename ServiceInterface>
76 ServiceComponentBase(
const components::ComponentConfig& config,
const components::ComponentContext& context)
85 RegisterService(*
this);