diff options
Diffstat (limited to 'src/signals.hh')
| -rw-r--r-- | src/signals.hh | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/signals.hh b/src/signals.hh new file mode 100644 index 0000000..f387f9f --- /dev/null +++ b/src/signals.hh @@ -0,0 +1,33 @@ +#ifndef SIGNALS_HH +#define SIGNALS_HH + +#include <functional> +#include <memory> + +namespace looper { +class Looper; +} // namespace looper + +namespace signals { + +enum class Signal { + INT, + TERM, +}; + +class Handler { + public: + virtual ~Handler() = default; + + static std::unique_ptr<Handler> create(looper::Looper& looper, Signal signal, + std::function<void()> callback); + + protected: + Handler() = default; + Handler(Handler const&) = delete; + Handler& operator=(Handler const&) = delete; +}; + +} // namespace signals + +#endif // SIGNALS_HH |
