8#include <userver/components/component_base.hpp>
9#include <userver/utils/not_null.hpp>
11#include <userver/ugrpc/client/client_factory.hpp>
12#include <userver/ugrpc/client/fwd.hpp>
14USERVER_NAMESPACE_BEGIN
16namespace ugrpc::client {
28 FindFactory(
const components::ComponentConfig& config,
const components::ComponentContext& context);
31 MakeClientSettings(
const components::ComponentConfig& config,
const dynamic_config::Key<
ClientQos>* client_qos);
75template <
typename Client>
80 : SimpleClientComponentAny(config, context),
81 client_(
utils::MakeSharedRef<Client>(
82 FindFactory(config, context).MakeClient<Client>(MakeClientSettings(config,
nullptr))
90 const dynamic_config::Key<
ClientQos>& client_qos
92 : SimpleClientComponentAny(config, context),
93 client_(
utils::MakeSharedRef<Client>(
94 FindFactory(config, context).MakeClient<Client>(MakeClientSettings(config, &client_qos))
105 utils::SharedRef<Client> client_;
112template <
typename Client>
113inline constexpr bool kHasValidate<ugrpc::client::SimpleClientComponent<Client>> =
true;