DynExp
Highly flexible laboratory automation for dynamically changing experiments.
|
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...
Private Member Functions | |
void | UpdateFuncImpl (dispatch_tag< DataStreamInstrumentTasks::UpdateTask >, DynExp::InstrumentInstance &Instance) override final |
Updates the respective instrument within the instrument inheritance hierarchy. Call UpdateFuncImpl() of a derived instrument's update task as the last command in a base instrument's update task UpdateFuncImpl() to ensure that derived instruments are updated after base instruments. Overriding functions must throw an exception in case of an error. More... | |
virtual void | UpdateFuncImpl (dispatch_tag< UpdateTask >, DynExp::InstrumentInstance &Instance) |
Updates the respective instrument within the instrument inheritance hierarchy. Call UpdateFuncImpl() of a derived instrument's update task as the last command in a base instrument's update task UpdateFuncImpl() to ensure that derived instruments are updated after base instruments. Overriding functions must throw an exception in case of an error. More... | |
Additional Inherited Members | |
Public Types inherited from DynExp::TaskBase | |
enum class | TaskState { Waiting , Locked , Running , Finished , Failed , Aborted } |
Defines states an instrument's task can undergo. Possible state transitions are: More... | |
using | CallbackType = std::function< void(const TaskBase &, ExceptionContainer &)> |
Type of a callback function which is invoked when a task has finished, failed or has been aborted. The function receives a reference to the task it originates from as well as a reference to a wrapper holding an exception which might have occurred while executing the task. More... | |
Public Member Functions inherited from DynExp::TaskBase | |
TaskBase (CallbackType CallbackFunc=nullptr) noexcept | |
Constructs an instrument task. More... | |
virtual | ~TaskBase ()=0 |
The destructor aborts a waiting task setting State to TaskState::Aborted. Then, it calls CallbackFunc with a default-constructed ExceptionContainer instance. More... | |
TaskState | GetState () const noexcept |
Getter for the instrument task's current state. More... | |
bool | IsLocked () const noexcept |
Determines whether the task is locked. More... | |
bool | IsAborting () const noexcept |
Determines whether the task should abort. A derived task is encouraged to call this method before performing any action or in between the individual steps of a more complex action. More... | |
int | GetErrorCode () const noexcept |
Getter for the error code related to an error possibly occurred while the task was executed. More... | |
void | Abort () |
Requests the task to abort. There is no guarantee that the derived task does call IsAborting() to check whether it should abort. The task could have finished already or the implementation of RunChild() in the derived class does not allow for aborting. More... | |
Public Attributes inherited from DynExp::TaskBase | |
InstrumentBaseOnlyType | InstrumentBaseOnly |
Allow exclusive access to some of TaskBase's private methods to InstrumentBase . More... | |
InstrumentDataBaseOnlyType | InstrumentDataBaseOnly |
Allow exclusive access to some of TaskBase's private methods to InstrumentDataBase . More... | |
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.
Definition at line 416 of file FunctionGenerator.h.
|
finaloverrideprivatevirtual |
Updates the respective instrument within the instrument inheritance hierarchy. Call UpdateFuncImpl()
of a derived instrument's update task as the last command in a base instrument's update task UpdateFuncImpl()
to ensure that derived instruments are updated after base instruments. Overriding functions must throw an exception in case of an error.
Instance | Handle to the instrument thread's data |
Reimplemented from DynExpInstr::DataStreamInstrumentTasks::UpdateTask.
Definition at line 109 of file FunctionGenerator.cpp.
|
inlineprivatevirtual |
Updates the respective instrument within the instrument inheritance hierarchy. Call UpdateFuncImpl()
of a derived instrument's update task as the last command in a base instrument's update task UpdateFuncImpl()
to ensure that derived instruments are updated after base instruments. Overriding functions must throw an exception in case of an error.
Instance | Handle to the instrument thread's data |
Reimplemented in DynExpInstr::OutputPortTasks::UpdateTask, DynExpInstr::SwabianInstrumentsPulseStreamerTasks::UpdateTask, DynExpInstr::RS_SMC100ATasks::UpdateTask, DynExpInstr::RS_SMB100BTasks::UpdateTask, and DynExpInstr::DummyDataStreamInstrumentTasks::UpdateTask.
Definition at line 423 of file FunctionGenerator.h.