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