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 
20 namespace 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 
36  SignalHandler();
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