rad  5.1.0
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_context& 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_context& m_ios;
39  boost::asio::signal_set m_signals;
40  SMAdapter& m_sm;
41  //UniqueEvent m_triggered_event;
42  SharedEvent m_triggered_event;
43 };
44 
45 } // namespace rad
46 
47 #endif // RAD_SIGNAL_HPP
AnyEvent class header file.
Definition: smAdapter.hpp:60
Definition: signal.hpp:22
Signal & operator=(const Signal &)=delete
virtual ~Signal()
Definition: signal.cpp:39
void Add(const int signal_number)
Definition: signal.cpp:49
void Cancel(void)
Definition: signal.cpp:81
void Install(void)
Definition: signal.cpp:71
Signal(boost::asio::io_context &ios, SMAdapter &sm, UniqueEvent &&event)
Definition: signal.cpp:27
Signal(const Signal &)=delete
Definition: actionsApp.cpp:20
std::unique_ptr< AnyEvent > UniqueEvent
Definition: anyEvent.hpp:45
std::shared_ptr< const AnyEvent > SharedEvent
Definition: anyEvent.hpp:44
SMAdapter class header file.