rad  2.0.0
 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/anyEvent.hpp>
13 #include <rad/smAdapter.hpp>
14 
15 #include <boost/asio.hpp>
16 
17 namespace rad {
18 
22 class Signal {
23  public:
24  Signal(boost::asio::io_service& ios, SMAdapter& sm, UniqueEvent&& event);
25  virtual ~Signal();
26 
27  void Add(const int signal_number);
28  void Install(const int signal_number);
29  void Install(void);
30  void Cancel(void);
31 
32  Signal(const Signal&) = delete;
33  Signal& operator=(const Signal&) = delete;
34 
35  private:
36  void Callback(boost::system::error_code const& error_code, int signal_number);
37 
38  boost::asio::io_service& m_ios;
39  boost::asio::signal_set m_signals;
40  SMAdapter& m_sm;
41  UniqueEvent m_triggered_event;
42 };
43 
44 } // namespace rad
45 
46 #endif // RAD_SIGNAL_HPP
void Install(void)
Definition: signal.cpp:69
Signal(boost::asio::io_service &ios, SMAdapter &sm, UniqueEvent &&event)
Definition: signal.cpp:25
std::unique_ptr< AnyEvent > UniqueEvent
Definition: anyEvent.hpp:45
Signal & operator=(const Signal &)=delete
void Add(const int signal_number)
Definition: signal.cpp:47
virtual ~Signal()
Definition: signal.cpp:37
void Cancel(void)
Definition: signal.cpp:79