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;
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
governikus::VolatileSettings::getMessages
const Messages & getMessages() const
Definition: VolatileSettings.cpp:88
governikus::VolatileSettings::Messages::getSessionStarted
QString getSessionStarted() const
Definition: VolatileSettings.cpp:26
governikus::VolatileSettings::setHandleInterrupt
void setHandleInterrupt(bool pScan=cHandleInterruptDefault)
Definition: VolatileSettings.cpp:76
governikus::VolatileSettings::Messages::getSessionInProgress
QString getSessionInProgress() const
Definition: VolatileSettings.cpp:44
defineSingleton
defineSingleton(VolatileSettings) VolatileSettings
Definition: VolatileSettings.cpp:11
VolatileSettings.h
governikus::VolatileSettings::Messages::getSessionSucceeded
QString getSessionSucceeded() const
Definition: VolatileSettings.cpp:38
governikus::Env
Definition: Env.h:44
governikus::VolatileSettings::setUsedAsSDK
void setUsedAsSDK(bool pSdk)
Definition: VolatileSettings.cpp:64
governikus::VolatileSettings::Messages::getSessionFailed
QString getSessionFailed() const
Definition: VolatileSettings.cpp:32
governikus::VolatileSettings::VolatileSettings
VolatileSettings()
Definition: VolatileSettings.cpp:50
governikus::VolatileSettings::Messages::Messages
Messages(const QString &pSessionStarted=QString(), const QString &pSessionFailed=QString(), const QString &mSessionSucceeded=QString(), const QString &pSessionInProgress=QString())
governikus::VolatileSettings::getInstance
static VolatileSettings & getInstance()
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::VolatileSettings::handleInterrupt
bool handleInterrupt() const
Definition: VolatileSettings.cpp:70
governikus::VolatileSettings::isUsedAsSDK
bool isUsedAsSDK() const
Definition: VolatileSettings.cpp:58
Env.h
governikus::VolatileSettings
Definition: VolatileSettings.h:32
governikus::VolatileSettings::~VolatileSettings
~VolatileSettings()=default
governikus::VolatileSettings::setMessages
void setMessages(const Messages &pMessages=Messages())
Definition: VolatileSettings.cpp:82
governikus::VolatileSettings::Messages
Definition: VolatileSettings.h:39
SingletonHelper.h