10 #ifndef DAQ_DPM_DPMREPLIER_HPP
11 #define DAQ_DPM_DPMREPLIER_HPP
14 #include <boost/asio/executor_work_guard.hpp>
15 #include <boost/asio/signal_set.hpp>
16 #include <log4cplus/logger.h>
17 #include <mal/Mal.hpp>
39 class DpmService :
public ::daqif::AsyncDpmControl,
public ::daqif::AsyncDpmDaqControl {
62 boost::future<std::string>
Exit()
override;
64 boost::future<std::string>
GetVersion()
override;
70 boost::future<std::shared_ptr<::daqif::DaqReply>>
71 QueueDaq(
const std::string& specification)
override;
73 boost::future<std::shared_ptr<::daqif::DaqReply>>
AbortDaq(
const std::string&
id)
override;
75 boost::future<std::shared_ptr<::daqif::DaqStatus>>
GetDaqStatus(
const std::string&
id)
override;
77 boost::future<std::vector<std::shared_ptr<::daqif::DaqStatus>>>
GetActiveDaqs()
override;
81 void InitiateSignalHandler();
86 std::shared_ptr<daqif::DaqStatus> GetDaqStatusSync(std::string
const&
id);
97 boost::asio::executor_work_guard<boost::asio::io_context::executor_type> m_work_guard;
98 boost::asio::signal_set m_sigset;
99 log4cplus::Logger m_logger;
daqif::DpmControl and DpmDaqControl implementation.
boost::future< std::shared_ptr<::daqif::DaqReply > > QueueDaq(const std::string &specification) override
DpmService(rad::IoExecutor &executor, elt::mal::Mal &mal, Workspace &workspace, Scheduler &scheduler)
Construct replier.
boost::future< std::string > GetVersion() override
Cancels any started merges and terminates application.
boost::future< std::shared_ptr<::daqif::StorageStatus > > QueryStorageStatus() override
Cancels any started merges and terminates application.
boost::future< std::string > Exit() override
Cancels any started merges and terminates application.
static constexpr char const * LOGGER_NAME
boost::future< std::vector< std::shared_ptr<::daqif::DaqStatus > > > GetActiveDaqs() override
boost::future< std::shared_ptr<::daqif::DaqReply > > AbortDaq(const std::string &id) override
boost::future< std::shared_ptr<::daqif::DaqStatus > > GetDaqStatus(const std::string &id) override
Schedules asynchronous activities that results in merged Data Product and delivery.
Interface to interact with DPM workspace.
Adapts boost::asio::io_context into a compatible boost::thread Executor type.
daq::dpm::Workspace interface and implementation declaration
Declares daq::State and related functions.
daq::dpm::Scheduler and related class declarations.