9#include <grpcpp/support/byte_buffer.h>
11#include <userver/utils/box.hpp>
13#include <userver/ugrpc/client/call_options.hpp>
14#include <userver/ugrpc/client/generic_options.hpp>
15#include <userver/ugrpc/client/impl/fwd.hpp>
16#include <userver/ugrpc/client/response_future.hpp>
17#include <userver/ugrpc/impl/static_service_metadata.hpp>
19USERVER_NAMESPACE_BEGIN
21namespace ugrpc::client {
50class GenericClient
final {
52 GenericClient(GenericClient&&)
noexcept;
53 GenericClient& operator=(GenericClient&&)
noexcept;
59 std::string_view call_name,
60 const grpc::ByteBuffer& request,
67 std::string_view call_name,
68 const grpc::ByteBuffer& request,
75 explicit GenericClient(impl::ClientInternals&&);
77 static std::optional<ugrpc::impl::StaticServiceMetadata> GetMetadata() {
return std::nullopt; }
81 friend class impl::ClientDataAccessor;
83 utils::
Box<impl::ClientData> client_data_;