DynExp
Highly flexible laboratory automation for dynamically changing experiments.
gRPCInstrument.h File Reference

Defines a meta instrument template for transforming meta instruments into network instruments, which connect to gRPC servers. More...

Go to the source code of this file.

Classes

class  DynExpInstr::gRPCInstrumentTasks::InitTask< BaseInstr,, gRPCStubs >
 Defines a task for initializing an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by an initialization task class derived from InitTaskBase. Even if the task does not do anything, at least it has to call InitTaskBase::InitFuncImpl() of the derived instrument's initialization task class. More...
 
class  DynExpInstr::gRPCInstrumentTasks::ExitTask< BaseInstr,, gRPCStubs >
 Defines a task for deinitializing an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by a deinitialization task class derived from ExitTaskBase. Even if the task does not do anything, at least it has to call ExitTaskBase::ExitFuncImpl() of the derived instrument's deinitialization task class. More...
 
class  DynExpInstr::gRPCInstrumentTasks::UpdateTask< BaseInstr,, gRPCStubs >
 Defines a task for updating an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by an update task class derived from UpdateTaskBase. Even if the task does not do anything, at least it has to call UpdateTaskBase::UpdateFuncImpl() of the derived instrument's update task class. More...
 
class  DynExpInstr::gRPCInstrumentData< BaseInstr,, gRPCStubs >
 Data class for gRPCInstrument. More...
 
class  DynExpInstr::gRPCInstrumentParams< BaseInstr,, gRPCStubs >
 Parameter class for gRPCInstrument. More...
 
class  DynExpInstr::gRPCInstrumentConfigurator< BaseInstr,, gRPCStubs >
 Configurator class for gRPCInstrument. More...
 
class  DynExpInstr::gRPCInstrument< BaseInstr,, gRPCStubs >
 Meta instrument template for transforming meta instruments into network instruments, which connect to TCP sockets of gRPC servers. Derive from this class to build a network instrument based on a meta instrument. The network instrument connects to a corresponding server implemented with the DynExpModule::gRPCModule gRPC server module. The server controls the physical instrument itself. The respective meta instrument is selected as a template parameter. This class derives from the instrument. It is possible to use DynExp::InstrumentBase as the meta instrument to design network instruments, which allow accessing gRPC services directly. More...
 

Namespaces

 DynExpInstr
 DynExp's instrument namespace contains the implementation of DynExp instruments which extend DynExp's core functionality in a modular way.
 
 DynExpInstr::gRPCInstrumentTasks
 Tasks for gRPCInstrument.
 

Typedefs

template<typename gRPCStub >
using DynExpInstr::StubPtrType = std::shared_ptr< typename gRPCStub::Stub >
 Alias for a pointer to a gRPC stub. More...
 
template<typename gRPCStub , typename RequestMsgType , typename ResponseMsgType >
using DynExpInstr::StubFuncPtrType = grpc::Status(gRPCStub::*)(grpc::ClientContext *, const RequestMsgType &, ResponseMsgType *)
 Alias for a pointer to a gRPC stub function, which can be invoked as a remote procedure call. More...
 

Functions

template<typename gRPCStub , typename RequestMsgType , typename ResponseMsgType >
ResponseMsgType DynExpInstr::InvokeStubFunc (StubPtrType< gRPCStub > StubPtr, StubFuncPtrType< gRPCStub, RequestMsgType, ResponseMsgType > StubFunc, const RequestMsgType &RequestMsg)
 Invokes a gRPC stub function as a remote procedure call. Waits for a fixed amount of time (2 seconds) for a reply from the server until the call is considered to have exceeded its deadline. More...
 

Detailed Description

Defines a meta instrument template for transforming meta instruments into network instruments, which connect to gRPC servers.

Definition in file gRPCInstrument.h.