1
#pragma once
2

            
3
#include <functional>
4
#include <memory>
5

            
6
namespace Envoy {
7
namespace Event {
8

            
9
/**
10
 * Callback invoked when a signal event fires.
11
 */
12
using SignalCb = std::function<void()>;
13

            
14
/**
15
 * An abstract signal event. Free the event to stop listening on the signal.
16
 */
17
class SignalEvent {
18
public:
19
42432
  virtual ~SignalEvent() = default;
20
};
21

            
22
using SignalEventPtr = std::unique_ptr<SignalEvent>;
23

            
24
} // namespace Event
25
} // namespace Envoy