Viam C++ SDK current
Loading...
Searching...
No Matches
signal_manager.hpp
1#pragma once
2
3#include <signal.h>
4
5#ifdef _WIN32
6#include <windows.h>
7#endif
8
9namespace viam {
10namespace sdk {
11
17 public:
19 explicit SignalManager();
20
23
27 int wait();
28
29 private:
30#ifdef _WIN32
31 static BOOL WINAPI console_handler_routine_(DWORD dwCtrlType);
32 void handle_signal_(int signal);
33
34 static SignalManager* instance_;
35 HANDLE signal_event_ = INVALID_HANDLE_VALUE;
36 int signal_code_ = 0;
37#else
38 sigset_t sigset_;
39#endif
40};
41
42} // namespace sdk
43} // namespace viam
Defines handling logic for SIGINT and SIGTERM required by all C++ modules.
Definition signal_manager.hpp:16
SignalManager()
Creates a new SignalManager.
int wait()
Wait for SignalManager to receive SIGINT or SIGTERM.
~SignalManager()
Destructor.