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

Server base class for an explicit discipline. More...

#include <explicit.h>

Inheritance diagram for philote::ExplicitServer:

Public Member Functions

 ExplicitServer ()=default
 Constructor.
 
 ~ExplicitServer () noexcept
 Destructor.
 
void LinkPointers (std::shared_ptr< philote::ExplicitDiscipline > implementation)
 Links the explicit server to the discipline server and explicit discipline via pointers.
 
void UnlinkPointers ()
 Dereferences all pointers.
 
grpc::Status ComputeFunction (grpc::ServerContext *context, grpc::ServerReaderWriter<::philote::Array, ::philote::Array > *stream) override
 RPC that computes initiates function evaluation.
 
grpc::Status ComputeGradient (grpc::ServerContext *context, grpc::ServerReaderWriter<::philote::Array, ::philote::Array > *stream) override
 RPC that computes initiates gradient evaluation.
 
template<typename StreamType >
grpc::Status ComputeFunctionImpl (grpc::ServerContext *context, StreamType *stream)
 
template<typename StreamType >
grpc::Status ComputeGradientImpl (grpc::ServerContext *context, StreamType *stream)
 
grpc::Status ComputeFunctionForTesting (grpc::ServerContext *context, grpc::ServerReaderWriterInterface<::philote::Array, ::philote::Array > *stream)
 
grpc::Status ComputeGradientForTesting (grpc::ServerContext *context, grpc::ServerReaderWriterInterface<::philote::Array, ::philote::Array > *stream)
 

Detailed Description

Server base class for an explicit discipline.

This class should be inherited from by analysis discipline developers to create analysis 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 ExplicitDiscipline must also be thread-safe if concurrent RPC calls are expected. User-defined Compute and ComputePartials methods should include appropriate synchronization if they modify shared state.

Constructor & Destructor Documentation

◆ ExplicitServer()

philote::ExplicitServer::ExplicitServer ( )
default

Constructor.

◆ ~ExplicitServer()

philote::ExplicitServer::~ExplicitServer ( )
noexcept

Destructor.

Member Function Documentation

◆ ComputeFunction()

grpc::Status philote::ExplicitServer::ComputeFunction ( grpc::ServerContext *  context,
grpc::ServerReaderWriter<::philote::Array, ::philote::Array > *  stream 
)
override

RPC that computes initiates function evaluation.

Parameters
context
stream
Returns
grpc::Status

◆ ComputeFunctionForTesting()

grpc::Status philote::ExplicitServer::ComputeFunctionForTesting ( grpc::ServerContext *  context,
grpc::ServerReaderWriterInterface<::philote::Array, ::philote::Array > *  stream 
)
inline

◆ ComputeFunctionImpl()

template<typename StreamType >
grpc::Status philote::ExplicitServer::ComputeFunctionImpl ( grpc::ServerContext *  context,
StreamType *  stream 
)

◆ ComputeGradient()

grpc::Status philote::ExplicitServer::ComputeGradient ( grpc::ServerContext *  context,
grpc::ServerReaderWriter<::philote::Array, ::philote::Array > *  stream 
)
override

RPC that computes initiates gradient evaluation.

Parameters
context
stream
Returns
grpc::Status

◆ ComputeGradientForTesting()

grpc::Status philote::ExplicitServer::ComputeGradientForTesting ( grpc::ServerContext *  context,
grpc::ServerReaderWriterInterface<::philote::Array, ::philote::Array > *  stream 
)
inline

◆ ComputeGradientImpl()

template<typename StreamType >
grpc::Status philote::ExplicitServer::ComputeGradientImpl ( grpc::ServerContext *  context,
StreamType *  stream 
)

◆ LinkPointers()

void philote::ExplicitServer::LinkPointers ( std::shared_ptr< philote::ExplicitDiscipline implementation)

Links the explicit server to the discipline server and explicit discipline via pointers.

Parameters
implementationShared pointer to the explicit discipline instance

◆ UnlinkPointers()

void philote::ExplicitServer::UnlinkPointers ( )

Dereferences all pointers.


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