rad  2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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
void Install(const long timeout)
Definition: timer.cpp:45
virtual ~Timer()
Definition: timer.cpp:35
Definition: smAdapter.hpp:42
Timer(boost::asio::io_service &ios, SMAdapter &sm, UniqueEvent &&event)
Definition: timer.cpp:23
std::unique_ptr< AnyEvent > UniqueEvent
Definition: anyEvent.hpp:45
void Cancel()
Definition: timer.cpp:66
Definition: timer.hpp:22
Timer & operator=(const Timer &)=delete