6 #ifndef CPPIPC_SERVER_CONSOLE_CANCEL_HANDLER_HPP 7 #define CPPIPC_SERVER_CONSOLE_CANCEL_HANDLER_HPP 10 #include <core/export.hpp> 24 class EXPORT console_cancel_handler {
26 static console_cancel_handler& get_instance();
31 virtual bool set_handler() {
return false; }
35 virtual bool unset_handler() {
return false; }
37 virtual void raise_cancel() {}
39 bool get_cancel_flag() {
40 return m_cancel_on.load();
43 void set_cancel_flag(
bool val) {
44 m_cancel_on.store(val);
48 console_cancel_handler() {
49 this->set_cancel_flag(
false);
52 std::atomic<bool> m_cancel_on;
54 bool m_handler_installed =
false;
57 console_cancel_handler(console_cancel_handler
const&) =
delete;
59 console_cancel_handler& operator=(console_cancel_handler
const&) =
delete;
65 #endif //CPPIPC_SERVER_CONSOLE_CANCEL_HANDLER_HPP