rad 6.2.0
Loading...
Searching...
No Matches
timer.hpp
Go to the documentation of this file.
1
9#ifndef RAD_TIMER_HPP
10#define RAD_TIMER_HPP
11
12#include <rad/anyEvent.hpp>
13#include <rad/smAdapter.hpp>
14
15#include <boost/asio.hpp>
16
17namespace rad {
18
22class Timer {
23 public:
24 Timer(boost::asio::io_context& ios, SMAdapter& sm, UniqueEvent&& event);
25 virtual ~Timer();
26
27 void Install(const long timeout);
28 void Cancel();
29
30 Timer(const Timer&) = delete;
31 Timer& operator=(const Timer&) = delete;
32
33 private:
34 void Callback(boost::system::error_code const& error_code);
35
36 boost::asio::io_context& m_ios;
37 boost::asio::deadline_timer* m_deadline_timer;
38 SMAdapter& m_sm;
39 //UniqueEvent m_triggered_event;
40 SharedEvent m_triggered_event;
41};
42
43} // namespace rad
44
45#endif // RAD_TIMER_HPP
AnyEvent class header file.
Definition smAdapter.hpp:60
Definition timer.hpp:22
void Install(const long timeout)
Definition timer.cpp:47
Timer(const Timer &)=delete
Timer(boost::asio::io_context &ios, SMAdapter &sm, UniqueEvent &&event)
Definition timer.cpp:25
Timer & operator=(const Timer &)=delete
virtual ~Timer()
Definition timer.cpp:37
void Cancel()
Definition timer.cpp:68
Definition actionsApp.cpp:23
std::unique_ptr< AnyEvent > UniqueEvent
Definition anyEvent.hpp:45
std::shared_ptr< const AnyEvent > SharedEvent
Definition anyEvent.hpp:44
SMAdapter class header file.