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;