#ifndef SIGNAL_HANDLER_HH #define SIGNAL_HANDLER_HH #include #include class Looper; class SignalHandler { public: virtual ~SignalHandler() = default; enum class Signal { INT, TERM, HUP, }; static std::unique_ptr create(std::shared_ptr looper, Signal signal, std::function callback); protected: SignalHandler() = default; SignalHandler(SignalHandler const&) = delete; SignalHandler& operator=(SignalHandler const&) = delete; }; #endif // SIGNAL_HANDLER_HH