ifw  0.0.1-dev
 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/Dispatcher.hpp>
13 #include <rad/AnyEvent.hpp>
14 
15 #include <boost/asio.hpp>
16 
17 
18 namespace rad {
19 
23 class Timer {
24 
25 public:
26  Timer(boost::asio::io_service& ios, Dispatcher& dispatcher, UniqueEvent&& event);
27  virtual ~Timer();
28 
29  void Install(const long timeout);
30  void Cancel();
31 
32  Timer(const Timer&) = delete;
33  Timer& operator= (const Timer&) = delete;
34 
35 private:
36  void Callback(boost::system::error_code const& errorCode);
37 
38  boost::asio::io_service& mIOS;
39  boost::asio::deadline_timer* mDeadlineTimer;
40  Dispatcher& mDispatcher;
41  UniqueEvent mTriggeredEvent;
42 };
43 
44 } // namespace rad
45 
46 #endif
void Install(const long timeout)
Definition: Timer.cpp:52
Timer(boost::asio::io_service &ios, Dispatcher &dispatcher, UniqueEvent &&event)
Definition: Timer.cpp:25
virtual ~Timer()
Definition: Timer.cpp:41
optional bool timeout
Definition: requests.proto:13
Definition: Dispatcher.hpp:22
std::unique_ptr< AnyEvent > UniqueEvent
Definition: AnyEvent.hpp:48
void Cancel()
Definition: Timer.cpp:71
optional int32 error_code
Definition: topics.proto:14
Definition: Timer.hpp:23
Timer & operator=(const Timer &)=delete