|
ifw-daq 3.1.0
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. | |
| boost::future< State > | ScheduleMergeAsync () override |
| Schedules DAQ for merging by sending request to DPM. | |
| 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. | |
| 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. | |
Public Member Functions inherited from daq::DaqController | |
| DaqController ()=default | |
| virtual | ~DaqController ()=default |
| virtual boost::future< State > | StartAsync ()=0 |
| Starts the data acquisition. | |
| virtual boost::future< Status > | StopAsync (ErrorPolicy policy)=0 |
| Stops the data acquisition. | |
| virtual boost::future< Status > | AbortAsync (ErrorPolicy policy)=0 |
| Aborts the data acquisition. | |
| virtual boost::future< State > | ScheduleMergeAsync ()=0 |
| Schedules DAQ for merging by sending request to DPM. | |
| virtual void | UpdateKeywords (fits::KeywordVector const &keywords)=0 |
| Updates (replace or add) list of keywords. | |
| virtual boost::future< State > | AwaitAsync (std::vector< std::string > sources, std::chrono::milliseconds timeout)=0 |
| Awaits that data acquisition stops or aborts. | |
| virtual State | GetState () const DAQ_NOEXCEPT=0 |
| virtual std::shared_ptr< ObservableStatus > | GetStatus () DAQ_NOEXCEPT=0 |
| virtual std::shared_ptr< ObservableStatus const > | GetStatus () const DAQ_NOEXCEPT=0 |
| virtual std::shared_ptr< ObservableEventLog > | GetEventLog () DAQ_NOEXCEPT=0 |
| virtual std::string const & | GetId () const DAQ_NOEXCEPT=0 |
| virtual bool | GetErrorFlag () const DAQ_NOEXCEPT=0 |
| virtual DaqContext const & | GetContext () const DAQ_NOEXCEPT=0 |
| virtual boost::signals2::connection | ConnectContext (ContextSignal::slot_type const &slot)=0 |
| Connect observer that is invoked when context is modified. | |
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 546 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 789 of file daqController.cpp.
|
overridevirtual |
Attempts to abort Data Acquisition.
Implements daq::DaqController.
Definition at line 938 of file daqController.cpp.
|
overridevirtual |
Implements daq::DaqController.
Definition at line 846 of file daqController.cpp.
|
overridevirtual |
Implements daq::DaqController.
Definition at line 855 of file daqController.cpp.
|
overridevirtual |
Schedules DAQ for merging by sending request to DPM.
Implements daq::DaqController.
Definition at line 859 of file daqController.cpp.
|
overridevirtual |
Implements daq::DaqController.
Definition at line 835 of file daqController.cpp.
|
overridevirtual |
Implements daq::DaqController.
Definition at line 840 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 851 of file daqController.cpp.