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

Base class for all analysis discipline servers. More...

#include <discipline_server.h>

Inheritance diagram for philote::DisciplineServer:

Public Member Functions

 DisciplineServer ()=default
 Construct a new Discipline Server object.
 
 ~DisciplineServer () noexcept override
 Destroy the Discipline Server object.
 
bool DisciplinePointerNull () noexcept
 Checks if the Discipline pointer is null.
 
void LinkPointers (std::shared_ptr< philote::Discipline > discipline)
 Links all pointers needed by the discipline base class.
 
void UnlinkPointers ()
 Unlinks all pointers.
 
grpc::Status GetInfo (grpc::ServerContext *context, const google::protobuf::Empty *request, ::philote::DisciplineProperties *response) override
 RPC to send the discipline properties to the client.
 
grpc::Status SetStreamOptions (grpc::ServerContext *context, const ::philote::StreamOptions *request, google::protobuf::Empty *response) override
 RPC to define the discipline stream options to the client.
 
grpc::Status SetOptions (grpc::ServerContext *context, const ::philote::DisciplineOptions *request, google::protobuf::Empty *response) override
 Set the discipline options.
 
::grpc::Status GetAvailableOptions (::grpc::ServerContext *context, const ::google::protobuf::Empty *request, ::philote::OptionsList *response) override
 
grpc::Status GetVariableDefinitions (grpc::ServerContext *context, const google::protobuf::Empty *request, grpc::ServerWriter<::philote::VariableMetaData > *writer) override
 RPC to define the discipline variables on the client side.
 
grpc::Status GetPartialDefinitions (grpc::ServerContext *context, const google::protobuf::Empty *request, grpc::ServerWriter<::philote::PartialsMetaData > *writer) override
 RPC to define the discipline partials on the client side.
 
grpc::Status Setup (grpc::ServerContext *context, const google::protobuf::Empty *request, google::protobuf::Empty *response) override
 RPC that invokes the discipline setup function.
 

Detailed Description

Base class for all analysis discipline servers.

Note
Thread Safety: gRPC may invoke RPC handlers concurrently on the same server instance. While the server infrastructure itself is thread-safe, the linked Discipline must also be thread-safe if concurrent RPC calls are expected. The current architecture links to a single Discipline instance, so user-defined Compute methods should include appropriate synchronization if needed.

Constructor & Destructor Documentation

◆ DisciplineServer()

philote::DisciplineServer::DisciplineServer ( )
default

Construct a new Discipline Server object.

◆ ~DisciplineServer()

philote::DisciplineServer::~DisciplineServer ( )
overridenoexcept

Destroy the Discipline Server object.

Deallocates all pointers required by the discipline base class

Member Function Documentation

◆ DisciplinePointerNull()

bool philote::DisciplineServer::DisciplinePointerNull ( )
noexcept

Checks if the Discipline pointer is null.

Returns
true if the pointer is null, otherwise false.

◆ GetAvailableOptions()

::grpc::Status philote::DisciplineServer::GetAvailableOptions ( ::grpc::ServerContext *  context,
const ::google::protobuf::Empty *  request,
::philote::OptionsList *  response 
)
override

◆ GetInfo()

grpc::Status philote::DisciplineServer::GetInfo ( grpc::ServerContext *  context,
const google::protobuf::Empty *  request,
::philote::DisciplineProperties *  response 
)
override

RPC to send the discipline properties to the client.

Parameters
context
request
response
Returns
grpc::Status

◆ GetPartialDefinitions()

grpc::Status philote::DisciplineServer::GetPartialDefinitions ( grpc::ServerContext *  context,
const google::protobuf::Empty *  request,
grpc::ServerWriter<::philote::PartialsMetaData > *  writer 
)
override

RPC to define the discipline partials on the client side.

Parameters
context
request
writer
Returns
grpc::Status

◆ GetVariableDefinitions()

grpc::Status philote::DisciplineServer::GetVariableDefinitions ( grpc::ServerContext *  context,
const google::protobuf::Empty *  request,
grpc::ServerWriter<::philote::VariableMetaData > *  writer 
)
override

RPC to define the discipline variables on the client side.

Parameters
context
request
writer
Returns
grpc::Status

◆ LinkPointers()

void philote::DisciplineServer::LinkPointers ( std::shared_ptr< philote::Discipline discipline)

Links all pointers needed by the discipline base class.

Parameters
disciplineShared pointer to the discipline instance

◆ SetOptions()

grpc::Status philote::DisciplineServer::SetOptions ( grpc::ServerContext *  context,
const ::philote::DisciplineOptions *  request,
google::protobuf::Empty *  response 
)
override

Set the discipline options.

Parameters
context
request
response
Returns
grpc::Status

◆ SetStreamOptions()

grpc::Status philote::DisciplineServer::SetStreamOptions ( grpc::ServerContext *  context,
const ::philote::StreamOptions *  request,
google::protobuf::Empty *  response 
)
override

RPC to define the discipline stream options to the client.

Parameters
context
request
response
Returns
grpc::Status

◆ Setup()

grpc::Status philote::DisciplineServer::Setup ( grpc::ServerContext *  context,
const google::protobuf::Empty *  request,
google::protobuf::Empty *  response 
)
override

RPC that invokes the discipline setup function.

Parameters
context
request
response
Returns
grpc::Status

◆ UnlinkPointers()

void philote::DisciplineServer::UnlinkPointers ( )

Unlinks all pointers.


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