AusweisApp
Lade ...
Suche ...
Keine Treffer
VolatileSettings.h
gehe zur Dokumentation dieser Datei
1
4
11
12#pragma once
13
14#include "Env.h"
15
16#include <QObject>
17#include <QReadWriteLock>
18
19#ifndef QT_NO_QDEBUG
20 #include <QScopeGuard>
21
22 #define SDK_MODE(pEnable)\
23 const auto sdkMode = Env::getSingleton<VolatileSettings>()->isUsedAsSDK();\
24 Env::getSingleton<VolatileSettings>()->setUsedAsSDK(pEnable);\
25 const auto sdkModeGuard = qScopeGuard([sdkMode] {\
26 Env::getSingleton<VolatileSettings>()->setUsedAsSDK(sdkMode);\
27 })
28
29#endif
30
31namespace governikus
32{
33
34class VolatileSettings
35 : public QObject
36 , private Env::ThreadSafe
37{
38 Q_OBJECT
39 friend class Env;
40
41 public:
43 {
44 // See JSON-SDK MsgHandlerAuth and MsgHandlerChangePin
45 QString mSessionStarted;
46 QString mSessionFailed;
47 QString mSessionSucceeded;
48 QString mSessionInProgress;
49
50 public:
51 Messages(const QString& pSessionStarted = QString(), const QString& pSessionFailed = QString(),
52 const QString& mSessionSucceeded = QString(), const QString& pSessionInProgress = QString());
53
54 [[nodiscard]] QString getSessionStarted() const;
55 [[nodiscard]] QString getSessionFailed() const;
56 [[nodiscard]] QString getSessionSucceeded() const;
57 [[nodiscard]] QString getSessionInProgress() const;
58 };
59
60 private:
61 static constexpr bool cHandleInterruptDefault = false;
62
63 VolatileSettings();
64 ~VolatileSettings() override = default;
65
66 mutable QReadWriteLock mLock;
67 bool mUsedAsSdk;
68 bool mDeveloperMode;
69 bool mHandleInterrupt;
70 Messages mMessages;
71 ulong mDelay;
72 bool mOnboardingShown;
73
74 public:
75 [[nodiscard]] bool isUsedAsSDK() const;
76 void setUsedAsSDK(bool pSdk);
77
78 [[nodiscard]] bool isDeveloperMode() const;
79 void setDeveloperMode(bool pMode = false);
80
81 [[nodiscard]] bool handleInterrupt() const;
82 void setHandleInterrupt(bool pScan = cHandleInterruptDefault);
83
84 void setMessages(const Messages& pMessages = Messages());
85 [[nodiscard]] Messages getMessages() const;
86
87 void setDelay(ulong pDelay = 0);
88 [[nodiscard]] ulong getDelay() const;
89
90 [[nodiscard]] bool onboardingShown() const;
91 void setOnboardingShown(bool pOnboardingShown);
92
93 Q_SIGNALS:
95};
96
97
98} // namespace governikus
Definition VolatileSettings.h:43
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
bool handleInterrupt() const
Definition VolatileSettings.cpp:94
void setUsedAsSDK(bool pSdk)
Definition VolatileSettings.cpp:67
bool onboardingShown() const
Definition VolatileSettings.cpp:136
void setMessages(const Messages &pMessages=Messages())
Definition VolatileSettings.cpp:108
ulong getDelay() const
Definition VolatileSettings.cpp:129
bool isDeveloperMode() const
Definition VolatileSettings.cpp:80
bool isUsedAsSDK() const
Definition VolatileSettings.cpp:60
Messages getMessages() const
Definition VolatileSettings.cpp:115
void setOnboardingShown(bool pOnboardingShown)
Definition VolatileSettings.cpp:143
friend class Env
Definition VolatileSettings.h:39
void setHandleInterrupt(bool pScan=cHandleInterruptDefault)
Definition VolatileSettings.cpp:101
void setDelay(ulong pDelay=0)
Definition VolatileSettings.cpp:122
void setDeveloperMode(bool pMode=false)
Definition VolatileSettings.cpp:87
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17
Definition Env.h:45