rad  3.0.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_service& 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_service& m_ios;
37  boost::asio::deadline_timer* m_deadline_timer;
38  SMAdapter& m_sm;
39  UniqueEvent m_triggered_event;
40 };
41 
42 } // namespace rad
43 
44 #endif // RAD_TIMER_HPP
rad::Timer::~Timer
virtual ~Timer()
Definition: timer.cpp:37
rad::UniqueEvent
std::unique_ptr< AnyEvent > UniqueEvent
Definition: anyEvent.hpp:45
rad::SMAdapter
Definition: smAdapter.hpp:60
rad::Timer::Timer
Timer(const Timer &)=delete
rad::Timer::Install
void Install(const long timeout)
Definition: timer.cpp:47
rad
Definition: actionCallback.hpp:21
rad::Timer::operator=
Timer & operator=(const Timer &)=delete
rad::Timer::Cancel
void Cancel()
Definition: timer.cpp:68
rad::Timer
Definition: timer.hpp:22
rad::Timer::Timer
Timer(boost::asio::io_service &ios, SMAdapter &sm, UniqueEvent &&event)
Definition: timer.cpp:25