33#include <grpcpp/impl/codegen/status.h>
34#include <grpcpp/impl/codegen/status_code_enum.h>
35#include <grpcpp/support/status.h>
37#include <disciplines.grpc.pb.h>
134 void SetStub(std::unique_ptr<philote::DisciplineService::StubInterface> stub)
136 stub_ = std::move(stub);
158 const DisciplineProperties &
GetProperties() const noexcept {
return properties_; }
165 void SetProperties(
const DisciplineProperties &props) { properties_ = props; }
200 void SetRPCTimeout(std::chrono::milliseconds timeout) { rpc_timeout_ = timeout; }
207 std::chrono::milliseconds
GetRPCTimeout() const noexcept {
return rpc_timeout_; }
211 std::unique_ptr<philote::DisciplineService::StubInterface> stub_;
214 philote::StreamOptions stream_options_;
217 philote::DisciplineProperties properties_;
220 std::vector<philote::VariableMetaData> var_meta_;
223 std::vector<philote::PartialsMetaData> partials_meta_;
226 std::chrono::milliseconds rpc_timeout_{60000};
Client class for interacting with a discipline server.
Definition discipline_client.h:55
void SetProperties(const DisciplineProperties &props)
Set the discipline properties.
Definition discipline_client.h:165
void ConnectChannel(const std::shared_ptr< grpc::ChannelInterface > &channel)
Connect to a gRPC channel.
void SendStreamOptions()
Send the stream options to the server.
const StreamOptions & GetStreamOptions() const noexcept
Get the stream options.
Definition discipline_client.h:144
void SetStreamOptions(const StreamOptions &options)
Set the stream options.
Definition discipline_client.h:151
void SetVariableMeta(const std::vector< VariableMetaData > &meta)
Set the variable metadata.
Definition discipline_client.h:179
const std::vector< VariableMetaData > & GetVariableMetaAll() const noexcept
Get the variable metadata.
Definition discipline_client.h:172
void GetInfo()
Get the discipline info.
void GetPartialDefinitions()
Get the partial definitions from the server.
DisciplineClient()
Construct a new Discipline Client object.
void GetVariableDefinitions()
Get the variable definitions from the server.
void SetStub(std::unique_ptr< philote::DisciplineService::StubInterface > stub)
Set the stub.
Definition discipline_client.h:134
std::chrono::milliseconds GetRPCTimeout() const noexcept
Get the current RPC timeout.
Definition discipline_client.h:207
VariableMetaData GetVariableMeta(const std::string &name)
Get the variable meta data.
void SetRPCTimeout(std::chrono::milliseconds timeout)
Set the RPC timeout for all client operations.
Definition discipline_client.h:200
void SendOptions(const philote::DisciplineOptions &options)
Send the discipline options to the server.
const std::vector< PartialsMetaData > & GetPartialsMetaConst() const noexcept
Get the partials metadata (const version)
Definition discipline_client.h:186
void SetPartialsMetaData(const std::vector< PartialsMetaData > &meta)
Set the partials metadata.
Definition discipline_client.h:193
void Setup()
Setup the discipline.
const DisciplineProperties & GetProperties() const noexcept
Get the discipline properties.
Definition discipline_client.h:158
std::vector< philote::PartialsMetaData > GetPartialsMeta()
Get the partials meta data.
std::vector< std::string > GetVariableNames()
Get the variable names.
Definition discipline.h:43