#include <cpp-terminal/private/signals.hpp>
Definition at line 24 of file signals.hpp.
◆ Signals()
Term::Private::Signals::Signals |
( |
const Terminal & | terminal | ) |
|
|
noexcept |
Definition at line 62 of file signals.cpp.
63{
67 {
68
69
71
73
74
75
76
77
78
79 }
80}
static const std::size_t m_signals_number
std::vector< sighandler_t > m_handlers
static const Term::Terminal * m_term
Term::Terminal & terminal
void(*)(int) sighandler_t
◆ ~Signals()
Term::Private::Signals::~Signals |
( |
| ) |
|
|
defaultnoexcept |
◆ clean_terminal()
void Term::Private::Signals::clean_terminal |
( |
| ) |
|
|
staticnoexcept |
◆ reset_and_raise()
void Term::Private::Signals::reset_and_raise |
( |
const int & | sign | ) |
|
|
noexcept |
Definition at line 82 of file signals.cpp.
83{
85 const static std::vector<int> termin{
86#if defined(SIGHUP)
87 SIGHUP,
88#endif
89#if defined(SIGINT)
90 SIGINT,
91#endif
92#if defined(SIGQUIT)
93 SIGQUIT,
94#endif
95#if defined(SIGILL)
96 SIGILL,
97#endif
98#if defined(SIGTRAP)
99 SIGTRAP,
100#endif
101#if defined(SIGABRT)
102 SIGABRT,
103#endif
104#if defined(SIGIOT)
105 SIGIOT,
106#endif
107#if defined(SIGBUS)
108 SIGBUS,
109#endif
110#if defined(SIGFPE)
111 SIGFPE,
112#endif
113#if defined(SIGKILL)
114 SIGKILL,
115#endif
116#if defined(SIGUSR1)
117 SIGUSR1,
118#endif
119#if defined(SIGSEGV)
120 SIGSEGV,
121#endif
122#if defined(SIGUSR2)
123 SIGUSR2,
124#endif
125#if defined(SIGPIPE)
126 SIGPIPE,
127#endif
128#if defined(SIGALRM)
129 SIGALRM,
130#endif
131#if defined(SIGSTKFLT)
132 SIGSTKFLT,
133#endif
134#if defined(SIGCONT)
135 SIGCONT,
136#endif
137#if defined(SIGXCPU)
138 SIGXCPU,
139#endif
140#if defined(SIGXFSZ)
141 SIGXFSZ,
142#endif
143#if defined(SIGVTALRM)
144 SIGVTALRM,
145#endif
146#if defined(SIGPROF)
147 SIGPROF,
148#endif
149#if defined(SIGIO)
150 SIGIO,
151#endif
152#if defined(SIGPOLL)
153 SIGPOLL,
154#endif
155#if defined(SIGPWR)
156 SIGPWR,
157#endif
158#if defined(SIGSYS)
159 SIGSYS,
160#endif
161#if defined(SIGUNUSED)
162 SIGUNUSED,
163#endif
164#if defined(SIGUNUSED)
165 SIGUNUSED,
166#endif
167#if defined(SIGTERM)
168 SIGTERM
169#endif
170 };
171 if(std::find(termin.begin(), termin.end(), sign) != termin.end())
172 {
175 std::raise(sign);
176 }
177}
static void clean_terminal() noexcept
◆ setHandler()
void Term::Private::Signals::setHandler |
( |
const sighandler_t & | handler | ) |
|
|
noexcept |
Definition at line 45 of file signals.cpp.
46{
48 {
49#ifdef _WIN32
50 if(signal != SIGINT)
sighandler_t hand = std::signal(signal, handler);
51#else
53#endif
54 }
55#ifdef _WIN32
56 SetConsoleCtrlHandler(consoleHandler, TRUE);
57#endif
58}
◆ m_handlers
std::vector<sighandler_t> Term::Private::Signals::m_handlers |
|
private |
◆ m_signals_number
const std::size_t Term::Private::Signals::m_signals_number {NSIG - 1} |
|
staticprivate |
◆ m_term
Definition at line 60 of file signals.hpp.
76{
77
78class Terminal;
79
80namespace Private
81{
82
83class Signals
84{
85public:
86 Signals(const Terminal&) noexcept;
87 ~Signals() noexcept = default;
89 void reset_and_raise(const int& sign) noexcept;
90 static void clean_terminal() noexcept;
91
92private:
93 const static std::size_t m_signals_number;
95 const static Term::Terminal* m_term;
96};
97
98}
99
100}
The documentation for this class was generated from the following files: