6#include <userver/components/component_base.hpp>
8#include <userver/ugrpc/client/client_factory.hpp>
9#include <userver/ugrpc/client/fwd.hpp>
11USERVER_NAMESPACE_BEGIN
13namespace ugrpc::client {
17class SimpleClientComponentAny :
public components::ComponentBase {
19 using components::ComponentBase::ComponentBase;
21 static yaml_config::Schema GetStaticConfigSchema();
25 FindFactory(
const components::ComponentConfig& config,
const components::ComponentContext& context);
28 MakeClientSettings(
const components::ComponentConfig& config,
const dynamic_config::Key<
ClientQos>* client_qos);
72template <
typename Client>
77 : SimpleClientComponentAny(config, context),
78 client_(FindFactory(config, context).MakeClient<Client>(MakeClientSettings(config,
nullptr))) {}
82 const components::ComponentConfig& config,
83 const components::ComponentContext& context,
84 const dynamic_config::Key<
ClientQos>& client_qos
86 : SimpleClientComponentAny(config, context),
87 client_(FindFactory(config, context).MakeClient<Client>(MakeClientSettings(config, &client_qos))) {}
100template <
typename Client>
101inline constexpr bool kHasValidate<ugrpc::client::SimpleClientComponent<Client>> =
true;