DynExp
Highly flexible laboratory automation for dynamically changing experiments.
DynExpModule::gRPCModuleData< gRPCServices > Class Template Reference

Data class for gRPCModule. More...

+ Inheritance diagram for DynExpModule::gRPCModuleData< gRPCServices >:

Public Member Functions

 gRPCModuleData ()
 
virtual ~gRPCModuleData ()=default
 
- Public Member Functions inherited from DynExp::ModuleDataBase
 ModuleDataBase ()
 
virtual ~ModuleDataBase ()
 
auto GetException () const noexcept
 Getter for ModuleException. More...
 
void EnqueueEvent (EventPtrType &&Event)
 Enqueues Event at the module event queue's back. Takes ownership of the event. Notifies the module owning the respective ModuleDataBase's instance that a new event has been enqueued. More...
 
EventPtrType PopEvent ()
 Removes one event from the event queue's front and returns the event. Ownership of the event is transferred to the caller of this method. More...
 
const auto & GetEventFront () const noexcept
 Returns a pointer to the event in the front of the module's event queue without transferring ownership and without removing the event from the queue. More...
 
auto & GetEventFront () noexcept
 Returns a pointer to the event in the front of the module's event queue without transferring ownership and without removing the event from the queue. More...
 
size_t GetNumEnqueuedEvents () const noexcept
 Getter for the module event queue's length. More...
 
- Public Member Functions inherited from Util::INonCopyable
 INonCopyable (const INonCopyable &)=delete
 
INonCopyableoperator= (const INonCopyable &)=delete
 

Private Member Functions

void ResetImpl (dispatch_tag< ModuleDataBase >) override final
 Refer to DynExp::ModuleDataBase::Reset(). Using tag dispatch mechanism to ensure that ResetImpl() of every derived class gets called - starting from ModuleDataBase, descending the inheritance hierarchy. Override in order to reset derived classes. More...
 
virtual void ResetImpl (dispatch_tag< gRPCModuleData >)
 Refer to DynExp::ModuleDataBase::Reset(). Using tag dispatch mechanism to ensure that ResetImpl() of every derived class gets called - starting from ModuleDataBase, descending the inheritance hierarchy. Override in order to reset derived classes. More...
 
void Init ()
 Called by ResetImpl(dispatch_tag<DynExp::ModuleDataBase>) overridden by this class to initialize the data class instance. Currently, does not do anything. More...
 

Additional Inherited Members

- Public Types inherited from DynExp::ModuleDataBase
using EventPtrType = std::unique_ptr< EventBase >
 Pointer owning an event. More...
 
using EventQueueType = std::queue< EventPtrType >
 A module's event queue is a FIFO queue owning the enqueued events. More...
 
- Public Attributes inherited from DynExp::ModuleDataBase
ModuleBaseOnlyType ModuleBaseOnly
 Allow exclusive access to some of ModuleDataBase's private methods to ModuleBase. More...
 
ModuleThreadOnlyType ModuleThreadOnly
 Allow exclusive access to some of ModuleDataBase's private methods to the module thread ModuleThreadMain(). More...
 
- Protected Member Functions inherited from Util::ISynchronizedPointerLockable
 ISynchronizedPointerLockable ()
 
 ~ISynchronizedPointerLockable ()
 Object should never be destroyed before completely unlocked. More...
 
- Protected Member Functions inherited from Util::INonCopyable
constexpr INonCopyable ()=default
 
 ~INonCopyable ()=default
 

Detailed Description

template<typename... gRPCServices>
class DynExpModule::gRPCModuleData< gRPCServices >

Data class for gRPCModule.

Template Parameters
...gRPCServicesList of gRPC service types this gRPC server implements. The order of service types should match the order of stub types in the gRPCStubs list of the respective DynExpInstr::gRPCInstrument network instrument.

Definition at line 25 of file gRPCModule.h.

Constructor & Destructor Documentation

◆ gRPCModuleData()

template<typename... gRPCServices>
DynExpModule::gRPCModuleData< gRPCServices >::gRPCModuleData ( )
inline

Definition at line 28 of file gRPCModule.h.

◆ ~gRPCModuleData()

template<typename... gRPCServices>
virtual DynExpModule::gRPCModuleData< gRPCServices >::~gRPCModuleData ( )
virtualdefault

Member Function Documentation

◆ Init()

template<typename... gRPCServices>
void DynExpModule::gRPCModuleData< gRPCServices >::Init ( )
inlineprivate

Called by ResetImpl(dispatch_tag<DynExp::ModuleDataBase>) overridden by this class to initialize the data class instance. Currently, does not do anything.

Definition at line 46 of file gRPCModule.h.

◆ ResetImpl() [1/2]

template<typename... gRPCServices>
virtual void DynExpModule::gRPCModuleData< gRPCServices >::ResetImpl ( dispatch_tag< gRPCModuleData< gRPCServices > >  )
inlineprivatevirtual

Refer to DynExp::ModuleDataBase::Reset(). Using tag dispatch mechanism to ensure that ResetImpl() of every derived class gets called - starting from ModuleDataBase, descending the inheritance hierarchy. Override in order to reset derived classes.

Definition at line 40 of file gRPCModule.h.

◆ ResetImpl() [2/2]

template<typename... gRPCServices>
void DynExpModule::gRPCModuleData< gRPCServices >::ResetImpl ( dispatch_tag< ModuleDataBase )
inlinefinaloverrideprivate

Refer to DynExp::ModuleDataBase::Reset(). Using tag dispatch mechanism to ensure that ResetImpl() of every derived class gets called - starting from ModuleDataBase, descending the inheritance hierarchy. Override in order to reset derived classes.

Definition at line 35 of file gRPCModule.h.


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