AusweisApp2
Lade ...
Suche ...
Keine Treffer
SignalHandler.h
gehe zur Dokumentation dieser Datei
1/*
2 * \brief Implements signal handler for unix and windows.
3 *
4 * \copyright Copyright (c) 2014-2022 Governikus GmbH & Co. KG, Germany
5 */
6
7#pragma once
8
9#include <QObject>
10#include <functional>
11
12#if defined(Q_OS_UNIX) && !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
13 #include <QSocketNotifier>
14 #include <csignal>
15#elif defined(Q_OS_WIN)
16 #include <windows.h>
17#endif
18
19namespace governikus
20{
21
23 : public QObject
24{
25 Q_OBJECT
26
27 Q_DISABLE_COPY(SignalHandler)
28 friend class Env;
29
30 private:
31 bool mInit;
32 std::function<void()> mController;
33 bool mQuit;
34
36 ~SignalHandler() override;
37 void quit();
38
39#if defined(Q_OS_UNIX) && !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
40
41 private:
42 QScopedPointer<QSocketNotifier> mSignalSocketNotifier;
43 static int cSignalSocketPair[2];
44
45 void initUnix();
46 static void sigHandler(int pSignal);
47#elif defined(Q_OS_WIN)
48
49 private:
50 static BOOL WINAPI ctrlHandler(DWORD pCtrlType);
51#endif
52
53 private Q_SLOTS:
54 void onSignalSocketActivated();
55
56 public:
57 void init();
58 void setController(const std::function<void()>& pController);
59 [[nodiscard]] bool shouldQuit() const;
60};
61
62} // namespace governikus
Definition: Env.h:44
Definition: SignalHandler.h:24
void setController(const std::function< void()> &pController)
Definition: SignalHandler.cpp:52
void init()
Definition: SignalHandler.cpp:37
bool shouldQuit() const
Definition: SignalHandler.cpp:73
A simple template renderer.
Definition: ActivationContext.h:15