8#ifndef OCM_DAQ_OP_AWAIT_HPP_
9#define OCM_DAQ_OP_AWAIT_HPP_
12#include <boost/asio/steady_timer.hpp>
13#include <boost/thread/future.hpp>
69 [[nodiscard]] boost::future<Result<DpParts>>
Initiate();
74 void Abort()
noexcept;
92 boost::future<bool> AwaitOnceAsync();
103 boost::future<std::shared_ptr<recif::RecWaitStatus>>&& fut);
108 boost::future<void> MakeInterval();
111 struct IntervalTimer {
112 IntervalTimer(boost::asio::io_context& io_ctx, std::chrono::steady_clock::time_point next)
113 : timer(io_ctx, next), promise() {
118 boost::asio::steady_timer timer;
119 boost::promise<void> promise;
136 bool m_abort_requested;
141 boost::promise<Result<DpParts>> m_promise;
145 std::optional<IntervalTimer> m_interval;
146 std::optional<std::chrono::steady_clock::time_point> m_last_start;
Contains declaration for DpPart.
std::vector< DpPart > DpParts
Simple class that holds the source and associated state.
Await specific parameters that is not provided with AsyncOpParams.
A composite async operation that awaits primary data sources.
boost::future< Result< DpParts > > Initiate()
Initiates operation that await acquisition completion.
void Abort() noexcept
Aborts the operation.
Declaration of utilities.