8 #ifndef OCM_DAQ_OP_AWAIT_STATE_HPP_
9 #define OCM_DAQ_OP_AWAIT_STATE_HPP_
10 #include "../config.hpp"
12 #include <boost/asio/steady_timer.hpp>
13 #include <boost/signals2/connection.hpp>
14 #include <boost/thread/future.hpp>
15 #include <log4cplus/logger.h>
17 #include "../status.hpp"
18 #include "../utility.hpp"
44 std::shared_ptr<ObservableStatus> status,
46 std::chrono::milliseconds timeout);
58 [[nodiscard]] boost::future<ResultType>
Initiate();
63 void Abort() noexcept;
66 bool IsConditionSatisfied() const;
67 boost::asio::io_context& m_io_ctx;
70 std::chrono::milliseconds m_timeout;
83 boost::asio::steady_timer m_timer;
84 boost::signals2::scoped_connection m_connection;
85 log4cplus::Logger m_logger;
90 #endif // #ifndef OCM_DAQ_OP_AWAIT_STATE_HPP_