VectorNav C++ Library
signal.h
1 #ifndef _VNXPLAT_SIGNAL_H_
2 #define _VNXPLAT_SIGNAL_H_
3 
4 namespace vn {
5 namespace xplat {
6 
8 class Signal
9 {
10  // Types //////////////////////////////////////////////////////////////////
11 
12 public:
13 
16  {
19 
22  };
23 
28  typedef bool (*HandleSignalFunc)(Signal signal);
29 
31  class Observer
32  {
33  public:
34  virtual ~Observer() { }
35 
42  virtual bool XSignalHandleSingle(SignalType signal) = 0;
43 
44  protected:
45  Observer() { }
46  };
47 
48  // Public Methods /////////////////////////////////////////////////////////
49 
50 public:
51 
56  HandleSignalFunc handleFunc);
57 
62  HandleSignalFunc handleFunc);
63 
68  static void RegisterSignalObserver(
69  Observer* observer);
70 
75  static void UnregisterSignalObserver(
76  Observer* observer);
77 
78  // Private Members ////////////////////////////////////////////////////////
79 
80 private:
81 
82  // Contains internal data, mainly stuff that is required for cross-platform
83  // support.
84  struct Impl;
85 
86 };
87 
88 }
89 }
90 
91 #endif
Allows for other objects to listen for signal events.
Definition: signal.h:31
User pressed Ctrl-C.
Definition: signal.h:21
static void RegisterForSignalNotifications(HandleSignalFunc handleFunc)
Allows registering to receive notifications of system signals.
Provides access to system signals.
Definition: signal.h:8
SignalType
The available signals.
Definition: signal.h:15
virtual bool XSignalHandleSingle(SignalType signal)=0
If an observer is registered via RegisterSignalObserver, whenever a signal is received, this method will be called to alert the observer.
Definition: mock.h:4
static void UnregisterForSignalNotifications(HandleSignalFunc handleFunc)
Allows unregistering from receiving signal notifications.
static void RegisterSignalObserver(Observer *observer)
Allows registering an observer for notification when a signal is received.
bool(* HandleSignalFunc)(Signal signal)
Typedef for a function that can handle signal notifications.
Definition: signal.h:28
Definition: attitude.h:8
static void UnregisterSignalObserver(Observer *observer)
Allows unregistering of an observer from being notified when a signal is received.
Unknown type of signal.
Definition: signal.h:18