#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_;
};
public:
static constexpr std::string_view kName = "greeter-client";
const GreeterClient& GetClient() const;
private:
GreeterClient client_;
};
}