rad  5.1.0
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 
17 namespace rad {
18 
22 class 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
virtual ~Timer()
Definition: timer.cpp:37
void Cancel()
Definition: timer.cpp:68
Timer & operator=(const Timer &)=delete
Definition: actionsApp.cpp:20
std::unique_ptr< AnyEvent > UniqueEvent
Definition: anyEvent.hpp:45
std::shared_ptr< const AnyEvent > SharedEvent
Definition: anyEvent.hpp:44
SMAdapter class header file.