#pragma once
#include <string_view>
#include <samples/greeter_client.usrv.pb.hpp>
namespace samples {
class GreeterClient final {
public:
explicit GreeterClient(api::GreeterServiceClient&& raw_client);
std::string SayHello(std::string name) const;
std::vector<std::string> SayHelloResponseStream(std::string name) const;
std::string SayHelloRequestStream(const std::vector<std::string_view>& names) const;
std::vector<std::string> SayHelloStreams(const std::vector<std::string_view>& names) const;
private:
static std::unique_ptr<grpc::ClientContext> MakeClientContext();
api::GreeterServiceClient raw_client_;
};
using Client = GreeterClient;
public:
static constexpr std::string_view kName = "greeter-client";
GreeterClientComponent(const ::components::ComponentConfig& config, const ::components::ComponentContext& context)
: Base(config, context) {}
using Base::GetClient;
};
}