ifw  0.0.1-dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Signal.hpp
Go to the documentation of this file.
1 
9 #ifndef RAD_SIGNAL_HPP
10 #define RAD_SIGNAL_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 Signal {
24 
25 public:
26  Signal(boost::asio::io_service& ios, Dispatcher& dispatcher, UniqueEvent&& event);
27  virtual ~Signal();
28 
29  void Add(const int signalNumber);
30  void Install(const int signalNumber);
31  void Install(void);
32  void Cancel(void);
33 
34  Signal(const Signal&) = delete;
35  Signal& operator= (const Signal&) = delete;
36 
37 private:
38  void Callback(boost::system::error_code const& errorCode, int signalNumber);
39 
40  boost::asio::io_service& mIOS;
41  boost::asio::signal_set mSignals;
42  Dispatcher& mDispatcher;
43  UniqueEvent mTriggeredEvent;
44 };
45 
46 } // namespace rad
47 
48 #endif
void Install(void)
Definition: Signal.cpp:76
Definition: Signal.hpp:23
Definition: Dispatcher.hpp:22
std::unique_ptr< AnyEvent > UniqueEvent
Definition: AnyEvent.hpp:48
Signal & operator=(const Signal &)=delete
void Add(const int signalNumber)
Definition: Signal.cpp:53
optional int32 error_code
Definition: topics.proto:14
virtual ~Signal()
Definition: Signal.cpp:42
Signal(boost::asio::io_service &ios, Dispatcher &dispatcher, UniqueEvent &&event)
Definition: Signal.cpp:27
void Cancel(void)
Definition: Signal.cpp:86