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 MiddlewareRunner = USERVER_NAMESPACE::middlewares::RunnerComponentBase<MiddlewareBase, ServiceInfo>;
51 ServiceComponentBase(
const components::ComponentConfig& config,
const components::ComponentContext& context);
53 ~ServiceComponentBase() override;
66 ServerComponent& server_;
67 ServiceConfig config_;
68 std::atomic<
bool> registered_{
false};
74template <
typename ServiceInterface>
80 ServiceComponentBase(
const components::ComponentConfig& config,
const components::ComponentContext& context)
87 RegisterService(*
this);