Copyright (c) 2011 Microsoft Corporation
Module Name:
scoped_ctrl_c.h
Abstract:
Scoped control-c handler.
Author:
Leonardo de Moura (leonardo) 2011-04-27.
Revision History:
--*/
#pragma once
#include "util/event_handler.h"
#include "util/util.h"
struct scoped_ctrl_c {
event_handler & m_cancel_eh;
bool m_first;
bool m_once;
bool m_enabled;
void (STD_CALL *m_old_handler)(int);
scoped_ctrl_c * m_old_scoped_ctrl_c;
public:
scoped_ctrl_c(event_handler & eh, bool once=true, bool enabled=true);
~scoped_ctrl_c();
void reset() { m_first = true; }
};