|
ifw-daq
3.0.1
IFW Data Acquisition modules
|
Implements behaviour from the state NotScheduled to Completed. More...
#include <daqController.hpp>
Inheritance diagram for daq::DpmDaqController:Public Member Functions | |
| DpmDaqController (boost::asio::io_context &io_context, DaqContext context, std::shared_ptr< ObservableStatus > status, std::shared_ptr< ObservableEventLog > event_log, std::shared_ptr< DpmClient > dpm_client) | |
| Constructor. More... | |
| boost::future< State > | ScheduleMergeAsync () override |
| Schedules DAQ for merging by sending request to DPM. More... | |
| boost::future< State > | StartAsync () override |
| boost::future< Status > | StopAsync (ErrorPolicy policy) override |
| void | UpdateKeywords (fits::KeywordVector const &keywords) override |
| boost::future< State > | AwaitAsync (std::vector< std::string > sources, std::chrono::milliseconds timeout) override |
| boost::future< Status > | AbortAsync (ErrorPolicy policy) override |
| Attempts to abort Data Acquisition. More... | |
| State | GetState () const DAQ_NOEXCEPT override |
Public Member Functions inherited from daq::CommonDaqController | |
| CommonDaqController (boost::asio::io_context &io_context, DaqContext context, std::shared_ptr< ObservableStatus > status, std::shared_ptr< ObservableEventLog > event_log) | |
| std::shared_ptr< ObservableStatus > | GetStatus () DAQ_NOEXCEPT override |
| std::shared_ptr< ObservableStatus const > | GetStatus () const DAQ_NOEXCEPT override |
| std::shared_ptr< ObservableEventLog > | GetEventLog () DAQ_NOEXCEPT override |
| std::string const & | GetId () const DAQ_NOEXCEPT override |
| bool | GetErrorFlag () const DAQ_NOEXCEPT override |
| DaqContext const & | GetContext () const DAQ_NOEXCEPT override |
| boost::signals2::connection | ConnectContext (ContextSignal::slot_type const &slot) override |
| Connect observer that is invoked when context is modified. More... | |
Public Member Functions inherited from daq::DaqController | |
| DaqController ()=default | |
| virtual | ~DaqController ()=default |
Additional Inherited Members | |
Public Types inherited from daq::DaqController | |
| using | ContextSignal = boost::signals2::signal< void(DaqContext const &)> |
Protected Member Functions inherited from daq::CommonDaqController | |
| template<class T , class... Args> | |
| void | AddEvent (Args &&... args) |
| boost::asio::io_context & | GetIoCtx () noexcept |
| rad::IoExecutor & | GetIoExecutor () noexcept |
| DaqContext & | GetContextMut () noexcept |
| ObservableEventLog & | GetEventLogRef () noexcept |
| ObservableStatus & | GetStatusRef () noexcept |
| ObservableStatus const & | GetStatusRef () const noexcept |
| void | EmitContextSignal () |
Implements behaviour from the state NotScheduled to Completed.
Once successfully scheduled to be merged by DPM (NotScheduled -> Scheduled) the "location" for the true DAQ state is also transferred. This means:
DpmDaqController is responsible for requesting last known status from DPM (in state Scheduled and onwards). This is done with the DPM client which aggregates all instances and manages retries.
Definition at line 527 of file daqController.hpp.
| daq::DpmDaqController::DpmDaqController | ( | boost::asio::io_context & | io_context, |
| DaqContext | context, | ||
| std::shared_ptr< ObservableStatus > | status, | ||
| std::shared_ptr< ObservableEventLog > | event_log, | ||
| std::shared_ptr< DpmClient > | dpm_client | ||
| ) |
Constructor.
@important DpmDaqController must only be used with shared_ptr.
| io_context | Used for async operations. |
| context | DAQ context. |
| status | DAQ status. |
| dpm_client | Interface to DPM. During construction DpmDaqController will register signal slot to receive DAQ status updates and mirror that in status accordingly. |
| std::invalid_argument | if state of status is not NotScheduled or subsequent. |
Definition at line 750 of file daqController.cpp.
|
overridevirtual |
Attempts to abort Data Acquisition.
Implements daq::DaqController.
Definition at line 895 of file daqController.cpp.
|
overridevirtual |
Implements daq::DaqController.
Definition at line 807 of file daqController.cpp.
|
overridevirtual |
Implements daq::DaqController.
Definition at line 816 of file daqController.cpp.
|
overridevirtual |
Schedules DAQ for merging by sending request to DPM.
Implements daq::DaqController.
Definition at line 820 of file daqController.cpp.
|
overridevirtual |
Implements daq::DaqController.
Definition at line 796 of file daqController.cpp.
|
overridevirtual |
Implements daq::DaqController.
Definition at line 801 of file daqController.cpp.
|
overridevirtual |
| std::runtime_error | because operation is always invalid (keywords cannot be modified once delivered to DPM). |
Implements daq::DaqController.
Definition at line 812 of file daqController.cpp.