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

Allow exclusive access to some of ModuleDataBase's private methods to ModuleBase. More...

Private Member Functions

constexpr ModuleBaseOnlyType (ModuleDataBase &Parent) noexcept
 Construcs an instance - one for each ModuleDataBase instance.
 
void Reset ()
 Resets the ModuleDataBase's instance and calls ResetImpl(dispatch_tag<ModuleDataBase>) subsequently.
 
void IndicateException () noexcept
 Indicates to the main thread that an exception has happened in the module thread. Only performs atomic operations. Hence, this module data instance does not need to be locked for this function call.
 
void SetException (std::exception_ptr Exception) noexcept
 Setter for ModuleException.
 
auto & GetNewEventNotifier () noexcept
 Getter for NewEventNotifier.
 

Private Attributes

ModuleDataBaseParent
 Owning ModuleDataBase instance.
 

Friends

class ModuleDataBase
 
class ModuleBase
 

Detailed Description

Allow exclusive access to some of ModuleDataBase's private methods to ModuleBase.

Definition at line 197 of file Module.h.

Constructor & Destructor Documentation

◆ ModuleBaseOnlyType()

constexpr DynExp::ModuleDataBase::ModuleBaseOnlyType::ModuleBaseOnlyType ( ModuleDataBase Parent)
inlineconstexprprivatenoexcept

Construcs an instance - one for each ModuleDataBase instance.

Parameters
ParentOwning ModuleDataBase instance

Definition at line 206 of file Module.h.

Member Function Documentation

◆ GetNewEventNotifier()

auto & DynExp::ModuleDataBase::ModuleBaseOnlyType::GetNewEventNotifier ( )
inlineprivatenoexcept

Getter for NewEventNotifier.

Returns
Returns NewEventNotifier to notify the module thread about new events.

Definition at line 212 of file Module.h.

◆ IndicateException()

void DynExp::ModuleDataBase::ModuleBaseOnlyType::IndicateException ( )
inlineprivatenoexcept

Indicates to the main thread that an exception has happened in the module thread. Only performs atomic operations. Hence, this module data instance does not need to be locked for this function call.

Definition at line 209 of file Module.h.

◆ Reset()

void DynExp::ModuleDataBase::ModuleBaseOnlyType::Reset ( )
inlineprivate

Resets the ModuleDataBase's instance and calls ResetImpl(dispatch_tag<ModuleDataBase>) subsequently.

Definition at line 208 of file Module.h.

◆ SetException()

void DynExp::ModuleDataBase::ModuleBaseOnlyType::SetException ( std::exception_ptr  Exception)
inlineprivatenoexcept

Setter for ModuleException.

Parameters
ExceptionException to store.

Definition at line 210 of file Module.h.

Friends And Related Symbol Documentation

◆ ModuleBase

friend class ModuleBase
friend

Definition at line 200 of file Module.h.

◆ ModuleDataBase

friend class ModuleDataBase
friend

Definition at line 199 of file Module.h.

Member Data Documentation

◆ Parent

ModuleDataBase& DynExp::ModuleDataBase::ModuleBaseOnlyType::Parent
private

Owning ModuleDataBase instance.

Definition at line 214 of file Module.h.


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