DynExp
Highly flexible laboratory automation for dynamically changing experiments.
DynExpModule::StreamManipulatorData Class Reference

Data class for StreamManipulator. More...

+ Inheritance diagram for DynExpModule::StreamManipulatorData:

Public Member Functions

 StreamManipulatorData ()
 
virtual ~StreamManipulatorData ()=default
 
auto & GetInputDataStreams () const noexcept
 Getter for InputDataStreams. More...
 
auto & GetInputDataStreams () noexcept
 Getter for InputDataStreams. More...
 
auto & GetOutputDataStreams () const noexcept
 Getter for OutputDataStreams. More...
 
auto & GetOutputDataStreams () noexcept
 Getter for OutputDataStreams. More...
 
- 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< StreamManipulatorData >)
 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...
 

Private Attributes

DynExp::LinkedObjectWrapperContainerList< DynExpInstr::DataStreamInstrumentInputDataStreams
 Linked input data stream instruments whose samples are going to be used for calculations. More...
 
DynExp::LinkedObjectWrapperContainerList< DynExpInstr::DataStreamInstrumentOutputDataStreams
 Linked output data stream instruments to write the computed new samples to. 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

Data class for StreamManipulator.

Definition at line 91 of file StreamManipulator.h.

Constructor & Destructor Documentation

◆ StreamManipulatorData()

DynExpModule::StreamManipulatorData::StreamManipulatorData ( )
inline

Definition at line 94 of file StreamManipulator.h.

◆ ~StreamManipulatorData()

virtual DynExpModule::StreamManipulatorData::~StreamManipulatorData ( )
virtualdefault

Member Function Documentation

◆ GetInputDataStreams() [1/2]

auto& DynExpModule::StreamManipulatorData::GetInputDataStreams ( ) const
inlinenoexcept

Getter for InputDataStreams.

Definition at line 97 of file StreamManipulator.h.

◆ GetInputDataStreams() [2/2]

auto& DynExpModule::StreamManipulatorData::GetInputDataStreams ( )
inlinenoexcept

Getter for InputDataStreams.

Definition at line 98 of file StreamManipulator.h.

◆ GetOutputDataStreams() [1/2]

auto& DynExpModule::StreamManipulatorData::GetOutputDataStreams ( ) const
inlinenoexcept

Getter for OutputDataStreams.

Definition at line 99 of file StreamManipulator.h.

◆ GetOutputDataStreams() [2/2]

auto& DynExpModule::StreamManipulatorData::GetOutputDataStreams ( )
inlinenoexcept

Getter for OutputDataStreams.

Definition at line 100 of file StreamManipulator.h.

◆ Init()

void DynExpModule::StreamManipulatorData::Init ( )
private

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 54 of file StreamManipulator.cpp.

◆ ResetImpl() [1/2]

void DynExpModule::StreamManipulatorData::ResetImpl ( dispatch_tag< ModuleDataBase )
finaloverrideprivate

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 49 of file StreamManipulator.cpp.

◆ ResetImpl() [2/2]

virtual void DynExpModule::StreamManipulatorData::ResetImpl ( dispatch_tag< StreamManipulatorData )
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 111 of file StreamManipulator.h.

Member Data Documentation

◆ InputDataStreams

DynExp::LinkedObjectWrapperContainerList<DynExpInstr::DataStreamInstrument> DynExpModule::StreamManipulatorData::InputDataStreams
private

Linked input data stream instruments whose samples are going to be used for calculations.

Definition at line 122 of file StreamManipulator.h.

◆ OutputDataStreams

DynExp::LinkedObjectWrapperContainerList<DynExpInstr::DataStreamInstrument> DynExpModule::StreamManipulatorData::OutputDataStreams
private

Linked output data stream instruments to write the computed new samples to.

Definition at line 127 of file StreamManipulator.h.


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