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/fixed_array.hpp>
15#include <userver/utils/statistics/fwd.hpp>
17#include <userver/ugrpc/impl/static_metadata.hpp>
18#include <userver/ugrpc/impl/statistics_storage.hpp>
19#include <userver/ugrpc/server/impl/queue_holder.hpp>
20#include <userver/ugrpc/server/middlewares/fwd.hpp>
22USERVER_NAMESPACE_BEGIN
24namespace ugrpc::
server::impl {
27struct ServiceSettings
final {
29 engine::TaskProcessor& task_processor;
30 ugrpc::impl::StatisticsStorage& statistics_storage;
31 Middlewares middlewares;
32 logging::LoggerPtr access_tskv_logger;
33 const dynamic_config::Source config_source;
43 ServiceWorker& operator=(ServiceWorker&&) =
delete;
44 virtual ~ServiceWorker();
47 virtual grpc::Service& GetService() = 0;
50 virtual const ugrpc::impl::StaticServiceMetadata& GetMetadata()
const = 0;
53 virtual void Start() = 0;