Philote-Cpp
C++ bindings for the Philote MDO standard
Loading...
Searching...
No Matches
philote::DisciplineClient Class Reference

Client class for interacting with a discipline server. More...

#include <discipline_client.h>

Inheritance diagram for philote::DisciplineClient:
philote::ExplicitClient philote::ImplicitClient

Public Member Functions

 DisciplineClient ()
 Construct a new Discipline Client object.
 
void ConnectChannel (const std::shared_ptr< grpc::ChannelInterface > &channel)
 Connect to a gRPC channel.
 
void GetInfo ()
 Get the discipline info.
 
void SendStreamOptions ()
 Send the stream options to the server.
 
void SendOptions (const philote::DisciplineOptions &options)
 Send the discipline options to the server.
 
void Setup ()
 Setup the discipline.
 
void GetVariableDefinitions ()
 Get the variable definitions from the server.
 
void GetPartialDefinitions ()
 Get the partial definitions from the server.
 
std::vector< std::string > GetVariableNames ()
 Get the variable names.
 
VariableMetaData GetVariableMeta (const std::string &name)
 Get the variable meta data.
 
std::vector< philote::PartialsMetaData > GetPartialsMeta ()
 Get the partials meta data.
 
void SetStub (std::unique_ptr< philote::DisciplineService::StubInterface > stub)
 Set the stub.
 
const StreamOptions & GetStreamOptions () const noexcept
 Get the stream options.
 
void SetStreamOptions (const StreamOptions &options)
 Set the stream options.
 
const DisciplineProperties & GetProperties () const noexcept
 Get the discipline properties.
 
void SetProperties (const DisciplineProperties &props)
 Set the discipline properties.
 
const std::vector< VariableMetaData > & GetVariableMetaAll () const noexcept
 Get the variable metadata.
 
void SetVariableMeta (const std::vector< VariableMetaData > &meta)
 Set the variable metadata.
 
const std::vector< PartialsMetaData > & GetPartialsMetaConst () const noexcept
 Get the partials metadata (const version)
 
void SetPartialsMetaData (const std::vector< PartialsMetaData > &meta)
 Set the partials metadata.
 
void SetRPCTimeout (std::chrono::milliseconds timeout)
 Set the RPC timeout for all client operations.
 
std::chrono::milliseconds GetRPCTimeout () const noexcept
 Get the current RPC timeout.
 

Detailed Description

Client class for interacting with a discipline server.

Note
Thread Safety: This class is NOT thread-safe. Each thread should create its own DisciplineClient instance. Concurrent calls to methods on the same instance (e.g., ComputeFunction, GetInfo) will cause data races as they modify internal state. The underlying gRPC channel is thread-safe, so multiple client instances can safely share the same channel.

Constructor & Destructor Documentation

◆ DisciplineClient()

philote::DisciplineClient::DisciplineClient ( )

Construct a new Discipline Client object.

Member Function Documentation

◆ ConnectChannel()

void philote::DisciplineClient::ConnectChannel ( const std::shared_ptr< grpc::ChannelInterface > &  channel)

Connect to a gRPC channel.

Parameters
channel

◆ GetInfo()

void philote::DisciplineClient::GetInfo ( )

Get the discipline info.

◆ GetPartialDefinitions()

void philote::DisciplineClient::GetPartialDefinitions ( )

Get the partial definitions from the server.

◆ GetPartialsMeta()

std::vector< philote::PartialsMetaData > philote::DisciplineClient::GetPartialsMeta ( )

Get the partials meta data.

Returns
std::vector<PartialsMetaData>

◆ GetPartialsMetaConst()

const std::vector< PartialsMetaData > & philote::DisciplineClient::GetPartialsMetaConst ( ) const
inlinenoexcept

Get the partials metadata (const version)

Returns
const std::vector<PartialsMetaData>&

◆ GetProperties()

const DisciplineProperties & philote::DisciplineClient::GetProperties ( ) const
inlinenoexcept

Get the discipline properties.

Returns
const DisciplineProperties&

◆ GetRPCTimeout()

std::chrono::milliseconds philote::DisciplineClient::GetRPCTimeout ( ) const
inlinenoexcept

Get the current RPC timeout.

Returns
std::chrono::milliseconds Current timeout duration

◆ GetStreamOptions()

const StreamOptions & philote::DisciplineClient::GetStreamOptions ( ) const
inlinenoexcept

Get the stream options.

Returns
const StreamOptions&

◆ GetVariableDefinitions()

void philote::DisciplineClient::GetVariableDefinitions ( )

Get the variable definitions from the server.

◆ GetVariableMeta()

VariableMetaData philote::DisciplineClient::GetVariableMeta ( const std::string &  name)

Get the variable meta data.

Parameters
name
Returns
VariableMetaData

◆ GetVariableMetaAll()

const std::vector< VariableMetaData > & philote::DisciplineClient::GetVariableMetaAll ( ) const
inlinenoexcept

Get the variable metadata.

Returns
const std::vector<VariableMetaData>&

◆ GetVariableNames()

std::vector< std::string > philote::DisciplineClient::GetVariableNames ( )

Get the variable names.

Returns
std::vector<std::string>

◆ SendOptions()

void philote::DisciplineClient::SendOptions ( const philote::DisciplineOptions &  options)

Send the discipline options to the server.

Parameters
options

◆ SendStreamOptions()

void philote::DisciplineClient::SendStreamOptions ( )

Send the stream options to the server.

◆ SetPartialsMetaData()

void philote::DisciplineClient::SetPartialsMetaData ( const std::vector< PartialsMetaData > &  meta)
inline

Set the partials metadata.

Parameters
meta

◆ SetProperties()

void philote::DisciplineClient::SetProperties ( const DisciplineProperties &  props)
inline

Set the discipline properties.

Parameters
props

◆ SetRPCTimeout()

void philote::DisciplineClient::SetRPCTimeout ( std::chrono::milliseconds  timeout)
inline

Set the RPC timeout for all client operations.

Parameters
timeoutTimeout duration in milliseconds

◆ SetStreamOptions()

void philote::DisciplineClient::SetStreamOptions ( const StreamOptions &  options)
inline

Set the stream options.

Parameters
options

◆ SetStub()

void philote::DisciplineClient::SetStub ( std::unique_ptr< philote::DisciplineService::StubInterface >  stub)
inline

Set the stub.

Parameters
stub

◆ Setup()

void philote::DisciplineClient::Setup ( )

Setup the discipline.

◆ SetVariableMeta()

void philote::DisciplineClient::SetVariableMeta ( const std::vector< VariableMetaData > &  meta)
inline

Set the variable metadata.

Parameters
meta

The documentation for this class was generated from the following file: