AusweisApp2
SignalHandler.h
gehe zur Dokumentation dieser Datei
1 /*
2  * \brief Implements signal handler for unix and windows.
3  *
4  * \copyright Copyright (c) 2014-2021 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 <csignal>
15 #include <QSocketNotifier>
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  friend class Env;
28 
29  private:
30  Q_DISABLE_COPY(SignalHandler)
31 
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
governikus::Env
Definition: Env.h:44
governikus::SignalHandler::setController
void setController(AppController &pAppController)
Definition: SignalHandler.cpp:46
governikus::SignalHandler::shouldQuit
bool shouldQuit() const
Definition: SignalHandler.cpp:67
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
SignalHandler.h
governikus::AppController
Definition: AppController.h:36
AppController.h
governikus::SignalHandler::init
void init()
Definition: SignalHandler.cpp:31
governikus::SignalHandler
Definition: SignalHandler.h:25