diff options
Diffstat (limited to 'comp3331/server/src/shared/shared.hh')
| -rw-r--r-- | comp3331/server/src/shared/shared.hh | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/comp3331/server/src/shared/shared.hh b/comp3331/server/src/shared/shared.hh new file mode 100644 index 0000000..8e4fa36 --- /dev/null +++ b/comp3331/server/src/shared/shared.hh @@ -0,0 +1,28 @@ +#ifndef SHARED_SHARED_HH_ +#define SHARED_SHARED_HH_ + +#include <functional> +#include <iostream> +#include <signal.h> +#include <stdexcept> + +namespace shared { +extern bool should_exit; + +void set_exit_handler(); + +class should_exit_exception : public std::exception {}; + +// This won't exist until c++24 lol +class scoped_function { +private: + using func_t = std::function<void()>; + func_t func; + +public: + scoped_function(const func_t& f) : func(f) {} + ~scoped_function() { this->func(); } +}; +} // namespace shared + +#endif |
