8#include <grpcpp/completion_queue.h>
9#include <grpcpp/impl/service_type.h>
11#include <userver/dynamic_config/source.hpp>
12#include <userver/engine/task/task_processor_fwd.hpp>
13#include <userver/logging/null_logger.hpp>
14#include <userver/utils/statistics/fwd.hpp>
16#include <userver/ugrpc/impl/static_metadata.hpp>
17#include <userver/ugrpc/impl/statistics_storage.hpp>
18#include <userver/ugrpc/server/middlewares/fwd.hpp>
20USERVER_NAMESPACE_BEGIN
22namespace ugrpc::
server::impl {
25struct ServiceSettings
final {
26 grpc::ServerCompletionQueue& queue;
27 engine::TaskProcessor& task_processor;
28 ugrpc::impl::StatisticsStorage& statistics_storage;
29 Middlewares middlewares;
30 logging::LoggerPtr access_tskv_logger;
31 const dynamic_config::Source config_source;
41 ServiceWorker& operator=(ServiceWorker&&) =
delete;
42 virtual ~ServiceWorker();
45 virtual grpc::Service& GetService() = 0;
48 virtual const ugrpc::impl::StaticServiceMetadata& GetMetadata()
const = 0;
51 virtual void Start() = 0;