1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*++
Copyright (c) 2011 Microsoft Corporation
Module Name:
event_handler.h
Abstract:
Abstract event handler.
Author:
Leonardo de Moura (leonardo) 2011-04-26.
Revision History:
--*/
#pragma once
enum event_handler_caller_t {
UNSET_EH_CALLER,
CTRL_C_EH_CALLER,
TIMEOUT_EH_CALLER,
RESLIMIT_EH_CALLER,
API_INTERRUPT_EH_CALLER
};
class event_handler {
protected:
event_handler_caller_t m_caller_id = UNSET_EH_CALLER;
public:
virtual ~event_handler() = default;
virtual void operator()(event_handler_caller_t caller_id) = 0;
event_handler_caller_t caller_id() const { return m_caller_id; }
};