DynExp
Highly flexible laboratory automation for dynamically changing experiments.
Loading...
Searching...
No Matches
DynExpModule::EventSenderData Class Reference

#include <EventSender.h>

+ Inheritance diagram for DynExpModule::EventSenderData:

Public Member Functions

 EventSenderData ()
 
virtual ~EventSenderData ()=default
 
- Public Member Functions inherited from DynExp::QModuleDataBase
 QModuleDataBase ()=default
 
virtual ~QModuleDataBase ()=default
 
- Public Member Functions inherited from DynExp::ModuleDataBase
 ModuleDataBase ()
 
virtual ~ModuleDataBase ()
 
bool IsExceptionIndicated () const noexcept
 Getter for HasException. Only performs atomic operations. Hence, this module data instance does not need to be locked for this function call.
 
std::exception_ptr GetException () const noexcept
 Getter for ModuleDataBase::ModuleException. If ModuleDataBase::ModuleException is nullptr and ModuleDataBase::HasException is still true, returns a pointer to a Util::Exception instance.
 
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.
 
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.
 
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.
 
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.
 
size_t GetNumEnqueuedEvents () const noexcept
 Getter for the module event queue's length.
 
void RunQueue ()
 Wakes up a module waiting for events and forces it to run its main loop once.
 
- Public Member Functions inherited from Util::INonCopyable
 INonCopyable (const INonCopyable &)=delete
 
INonCopyableoperator= (const INonCopyable &)=delete
 

Public Attributes

DynExp::LinkedObjectWrapperContainer< DynExpInstr::InterModuleCommunicatorCommunicator
 
bool UIInitialized
 
size_t EventID
 
- Public Attributes inherited from DynExp::ModuleDataBase
ModuleBaseOnlyType ModuleBaseOnly
 Allow exclusive access to some of ModuleDataBase's private methods to ModuleBase.
 
ModuleThreadOnlyType ModuleThreadOnly
 Allow exclusive access to some of ModuleDataBase's private methods to the module thread ModuleThreadMain().
 

Private Member Functions

void ResetImpl (dispatch_tag< QModuleDataBase >) override final
 
virtual void ResetImpl (dispatch_tag< EventSenderData >)
 
void Init ()
 

Additional Inherited Members

- Public Types inherited from DynExp::ModuleDataBase
using EventPtrType = std::unique_ptr< EventBase >
 Pointer owning an event.
 
using EventQueueType = std::queue< EventPtrType >
 A module's event queue is a FIFO queue owning the enqueued events.
 
- Protected Member Functions inherited from Util::ISynchronizedPointerLockable
 ISynchronizedPointerLockable ()
 
 ~ISynchronizedPointerLockable ()
 Object should never be destroyed before completely unlocked.
 
- Protected Member Functions inherited from Util::INonCopyable
constexpr INonCopyable ()=default
 
 ~INonCopyable ()=default
 

Detailed Description

Definition at line 45 of file EventSender.h.

Constructor & Destructor Documentation

◆ EventSenderData()

DynExpModule::EventSenderData::EventSenderData ( )
inline

Definition at line 48 of file EventSender.h.

◆ ~EventSenderData()

virtual DynExpModule::EventSenderData::~EventSenderData ( )
virtualdefault

Member Function Documentation

◆ Init()

void DynExpModule::EventSenderData::Init ( )
private

Definition at line 28 of file EventSender.cpp.

◆ ResetImpl() [1/2]

virtual void DynExpModule::EventSenderData::ResetImpl ( dispatch_tag< EventSenderData )
inlineprivatevirtual

Definition at line 59 of file EventSender.h.

◆ ResetImpl() [2/2]

void DynExpModule::EventSenderData::ResetImpl ( dispatch_tag< QModuleDataBase )
finaloverrideprivate

Definition at line 23 of file EventSender.cpp.

Member Data Documentation

◆ Communicator

DynExp::LinkedObjectWrapperContainer<DynExpInstr::InterModuleCommunicator> DynExpModule::EventSenderData::Communicator

Definition at line 51 of file EventSender.h.

◆ EventID

size_t DynExpModule::EventSenderData::EventID

Definition at line 55 of file EventSender.h.

◆ UIInitialized

bool DynExpModule::EventSenderData::UIInitialized

Definition at line 53 of file EventSender.h.


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