8#include <userver/components/component_base.hpp>
9#include <userver/engine/task/task_processor_fwd.hpp>
11#include <userver/ugrpc/client/impl/completion_queue_pool.hpp>
12#include <userver/ugrpc/client/proxy_settings.hpp>
13#include <userver/ugrpc/impl/completion_queue_pool_base.hpp>
14#include <userver/ugrpc/impl/statistics_storage.hpp>
16USERVER_NAMESPACE_BEGIN
18namespace ugrpc::client {
33class CommonComponent
final :
public components::ComponentBase {
37 static constexpr std::string_view
kName =
"grpc-client-common";
39 CommonComponent(
const components::ComponentConfig& config,
const components::ComponentContext& context);
40 ~CommonComponent()
override;
42 static yaml_config::Schema GetStaticConfigSchema();
45 friend class ClientFactoryComponent;
47 engine::TaskProcessor& blocking_task_processor_;
48 std::optional<impl::CompletionQueuePool> client_completion_queues_;
49 ugrpc::impl::CompletionQueuePoolBase& completion_queues_;
50 ugrpc::impl::StatisticsStorage client_statistics_storage_;
57inline constexpr bool components::kHasValidate<ugrpc::client::CommonComponent> =
true;