AusweisApp2
VolatileSettings.h
gehe zur Dokumentation dieser Datei
1 
10 #pragma once
11 
12 #include "Env.h"
13 
14 #include <QObject>
15 
16 #ifndef QT_NO_QDEBUG
17 #include <QScopeGuard>
18 
19 #define SDK_MODE(pEnable)\
20  const auto sdkMode = Env::getSingleton<VolatileSettings>()->isUsedAsSDK();\
21  Env::getSingleton<VolatileSettings>()->setUsedAsSDK(pEnable);\
22  const auto sdkModeGuard = qScopeGuard([sdkMode] {\
23  Env::getSingleton<VolatileSettings>()->setUsedAsSDK(sdkMode);\
24  })
25 
26 #endif
27 
28 namespace governikus
29 {
30 
32 {
33  Q_GADGET
34 
35  friend class Env;
36 
37  public:
38  class Messages
39  {
40  // See JSON-SDK MsgHandlerAuth and MsgHandlerChangePin
41  QString mSessionStarted;
42  QString mSessionFailed;
43  QString mSessionSucceeded;
44  QString mSessionInProgress;
45 
46  public:
47  Messages(const QString& pSessionStarted = QString(), const QString& pSessionFailed = QString(),
48  const QString& mSessionSucceeded = QString(), const QString& pSessionInProgress = QString());
49 
50  [[nodiscard]] QString getSessionStarted() const;
51  [[nodiscard]] QString getSessionFailed() const;
52  [[nodiscard]] QString getSessionSucceeded() const;
53  [[nodiscard]] QString getSessionInProgress() const;
54  };
55 
56  private:
57  static constexpr bool cHandleInterruptDefault = true;
58 
59  bool mUsedAsSdk;
60  bool mHandleInterrupt;
61  Messages mMessages;
62 
63  protected:
65  ~VolatileSettings() = default;
66  static VolatileSettings& getInstance();
67 
68  public:
69  [[nodiscard]] bool isUsedAsSDK() const;
70  void setUsedAsSDK(bool pSdk);
71 
72  [[nodiscard]] bool handleInterrupt() const;
73  void setHandleInterrupt(bool pScan = cHandleInterruptDefault);
74 
75  void setMessages(const Messages& pMessages = Messages());
76  [[nodiscard]] const Messages& getMessages() const;
77 };
78 
79 
80 } // namespace governikus
QString getSessionInProgress() const
Definition: VolatileSettings.cpp:44
VolatileSettings()
Definition: VolatileSettings.cpp:50
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
bool isUsedAsSDK() const
Definition: VolatileSettings.cpp:58
QString getSessionStarted() const
Definition: VolatileSettings.cpp:26
Definition: VolatileSettings.h:31
void setUsedAsSDK(bool pSdk)
Definition: VolatileSettings.cpp:64
QString getSessionFailed() const
Definition: VolatileSettings.cpp:32
Definition: Env.h:43
static VolatileSettings & getInstance()
QString getSessionSucceeded() const
Definition: VolatileSettings.cpp:38
bool handleInterrupt() const
Definition: VolatileSettings.cpp:70
const Messages & getMessages() const
Definition: VolatileSettings.cpp:88
Definition: VolatileSettings.h:38
void setMessages(const Messages &pMessages=Messages())
Definition: VolatileSettings.cpp:82
void setHandleInterrupt(bool pScan=cHandleInterruptDefault)
Definition: VolatileSettings.cpp:76
Messages(const QString &pSessionStarted=QString(), const QString &pSessionFailed=QString(), const QString &mSessionSucceeded=QString(), const QString &pSessionInProgress=QString())