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
29namespace governikus
30{
31
33 : public QObject
34 , private Env::ThreadSafe
35{
36 Q_OBJECT
37 friend class Env;
38
39 public:
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
A simple template renderer.
Definition: ActivationContext.h:15
Definition: Env.h:49