AusweisApp2
VolatileSettings.h
gehe zur Dokumentation dieser Datei
1 
10 #pragma once
11 
12 #include "Env.h"
13 
14 #include <QObject>
15 #include <QReadWriteLock>
16 
17 #ifndef QT_NO_QDEBUG
18  #include <QScopeGuard>
19 
20  #define SDK_MODE(pEnable)\
21  const auto sdkMode = Env::getSingleton<VolatileSettings>()->isUsedAsSDK();\
22  Env::getSingleton<VolatileSettings>()->setUsedAsSDK(pEnable);\
23  const auto sdkModeGuard = qScopeGuard([sdkMode] {\
24  Env::getSingleton<VolatileSettings>()->setUsedAsSDK(sdkMode);\
25  })
26 
27 #endif
28 
29 namespace governikus
30 {
31 
33  : public QObject
34  , private Env::ThreadSafe
35 {
36  Q_OBJECT
37  friend class Env;
38 
39  public:
40  class Messages
41  {
42  // See JSON-SDK MsgHandlerAuth and MsgHandlerChangePin
43  QString mSessionStarted;
44  QString mSessionFailed;
45  QString mSessionSucceeded;
46  QString mSessionInProgress;
47 
48  public:
49  Messages(const QString& pSessionStarted = QString(), const QString& pSessionFailed = QString(),
50  const QString& mSessionSucceeded = QString(), const QString& pSessionInProgress = QString());
51 
52  [[nodiscard]] QString getSessionStarted() const;
53  [[nodiscard]] QString getSessionFailed() const;
54  [[nodiscard]] QString getSessionSucceeded() const;
55  [[nodiscard]] QString getSessionInProgress() const;
56  };
57 
58  private:
59  static constexpr bool cHandleInterruptDefault = false;
60 
62  ~VolatileSettings() = default;
63 
64  mutable QReadWriteLock mLock;
65  bool mUsedAsSdk;
66  bool mDeveloperMode;
67  bool mHandleInterrupt;
68  Messages mMessages;
69  ulong mDelay;
70 
71  public:
72  [[nodiscard]] bool isUsedAsSDK() const;
73  void setUsedAsSDK(bool pSdk);
74 
75  [[nodiscard]] bool isDeveloperMode() const;
76  void setDeveloperMode(bool pMode = false);
77 
78  [[nodiscard]] bool handleInterrupt() const;
79  void setHandleInterrupt(bool pScan = cHandleInterruptDefault);
80 
81  void setMessages(const Messages& pMessages = Messages());
82  [[nodiscard]] Messages getMessages() const;
83 
84  void setDelay(ulong pDelay = 0);
85  [[nodiscard]] ulong getDelay() const;
86 
87  Q_SIGNALS:
89 };
90 
91 
92 } // namespace governikus
Definition: Env.h:44
Definition: VolatileSettings.h:41
QString getSessionSucceeded() const
Definition: VolatileSettings.cpp:36
Messages(const QString &pSessionStarted=QString(), const QString &pSessionFailed=QString(), const QString &mSessionSucceeded=QString(), const QString &pSessionInProgress=QString())
Definition: VolatileSettings.cpp:12
QString getSessionStarted() const
Definition: VolatileSettings.cpp:24
QString getSessionInProgress() const
Definition: VolatileSettings.cpp:42
QString getSessionFailed() const
Definition: VolatileSettings.cpp:30
Definition: VolatileSettings.h:35
bool handleInterrupt() const
Definition: VolatileSettings.cpp:93
void setUsedAsSDK(bool pSdk)
Definition: VolatileSettings.cpp:66
void setMessages(const Messages &pMessages=Messages())
Definition: VolatileSettings.cpp:107
ulong getDelay() const
Definition: VolatileSettings.cpp:128
bool isDeveloperMode() const
Definition: VolatileSettings.cpp:79
bool isUsedAsSDK() const
Definition: VolatileSettings.cpp:59
Messages getMessages() const
Definition: VolatileSettings.cpp:114
void setHandleInterrupt(bool pScan=cHandleInterruptDefault)
Definition: VolatileSettings.cpp:100
void setDelay(ulong pDelay=0)
Definition: VolatileSettings.cpp:121
void setDeveloperMode(bool pMode=false)
Definition: VolatileSettings.cpp:86
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16
Definition: Env.h:49