AusweisApp2
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
10
11#include <QPointer>
12
13#if defined(Q_OS_UNIX) && !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
14 #include <QSocketNotifier>
15 #include <csignal>
16#elif defined(Q_OS_WIN)
17 #include <windows.h>
18#endif
19
20namespace governikus
21{
22
24 : public QObject
25{
26 Q_OBJECT
27
28 Q_DISABLE_COPY(SignalHandler)
29 friend class Env;
30
31 private:
32 bool mInit;
33 QPointer<AppController> mAppController;
34 bool mQuit;
35
37 ~SignalHandler() override;
38 void quit();
39
40#if defined(Q_OS_UNIX) && !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
41
42 private:
43 QScopedPointer<QSocketNotifier> mSignalSocketNotifier;
44 static int cSignalSocketPair[2];
45
46 void initUnix();
47 static void sigHandler(int pSignal);
48#elif defined(Q_OS_WIN)
49
50 private:
51 static BOOL WINAPI ctrlHandler(DWORD pCtrlType);
52#endif
53
54 private Q_SLOTS:
55 void onSignalSocketActivated();
56
57 public:
58 void init();
59 void setController(AppController& pAppController);
60 [[nodiscard]] bool shouldQuit() const;
61};
62
63} // namespace governikus
Definition: AppController.h:26
Definition: Env.h:44
Definition: SignalHandler.h:25
void init()
Definition: SignalHandler.cpp:37
void setController(AppController &pAppController)
Definition: SignalHandler.cpp:52
bool shouldQuit() const
Definition: SignalHandler.cpp:75
A simple template renderer.
Definition: ActivationContext.h:15