AusweisApp2
Lade ...
Suche ...
Keine Treffer
GlobalStatus.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "EnumHelper.h"
12
13#include <QCoreApplication>
14#include <QMap>
15#include <QPair>
16#include <QSharedData>
17
18namespace governikus
19{
20
22{
23 Q_GADGET
24 Q_DECLARE_TR_FUNCTIONS(governikus::GlobalStatus)
25
26 public:
27 enum class Code
28 {
31
37
43
45
92
94
96
103
121
123
129 };
130
131 enum class Origin
132 {
134 };
135
137 {
140 LAST_URL,
146 };
147
148 using ExternalInfoMap = QMap<ExternalInformation, QString>;
149
150 Q_ENUM(Code)
151 Q_ENUM(Origin)
152 Q_ENUM(ExternalInformation)
153
154 private:
155 class InternalStatus
156 : public QSharedData
157 {
158 public:
159 const Code mStatusCode;
160 const ExternalInfoMap mExternalInformation;
161 const Origin mOrigin;
162
163 InternalStatus(Code pStatusCode, const ExternalInfoMap& pExternalInformation, const Origin pOrigin)
164 : mStatusCode(pStatusCode)
165 , mExternalInformation(pExternalInformation)
166 , mOrigin(pOrigin)
167 {
168 }
169
170
171 InternalStatus(Code pStatusCode, const QPair<ExternalInformation, QString>& pExternalInformation, const Origin pOrigin)
172 : mStatusCode(pStatusCode)
173 , mExternalInformation({
174 {pExternalInformation.first, pExternalInformation.second}
175 })
176 , mOrigin(pOrigin)
177 {
178 }
179
180
181 bool operator ==(const InternalStatus& pOther) const
182 {
183 return mStatusCode == pOther.mStatusCode &&
184 mExternalInformation == pOther.mExternalInformation &&
185 mOrigin == pOther.mOrigin;
186 }
187
188
189 };
190
191 QSharedDataPointer<InternalStatus> d;
192 [[nodiscard]] QString getExternalInfo(ExternalInformation pType) const;
193
194 [[nodiscard]] QString toErrorDescriptionInternal() const;
195
196 public:
197 GlobalStatus(Code pStatusCode, const ExternalInfoMap& pExternalInformation, const Origin pOrigin = Origin::Client)
198 : d(new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
199 {
200 }
201
202
203 GlobalStatus(Code pStatusCode, const QPair<ExternalInformation, QString>& pExternalInformation, const Origin pOrigin = Origin::Client)
204 : d(new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
205 {
206 }
207
208
209 GlobalStatus(Code pStatusCode = Code::Unknown_Error, const Origin pOrigin = Origin::Client)
210 : d(new InternalStatus(pStatusCode, ExternalInfoMap(), pOrigin))
211 {
212 }
213
214
215 bool operator ==(const GlobalStatus& pOther) const;
216 [[nodiscard]] bool is(const Code pStatusCode) const;
217
218 [[nodiscard]] Code getStatusCode() const;
219
220 [[nodiscard]] QString toErrorDescription(const bool pSimplifiedVersion = false) const;
221 [[nodiscard]] QString getExternalInfo(const QString& pToken = QStringLiteral("; ")) const;
222
223 [[nodiscard]] Origin getOrigin() const;
224 [[nodiscard]] bool isOriginServer() const;
225
226 [[nodiscard]] bool isNoError() const;
227 [[nodiscard]] bool isError() const;
228 [[nodiscard]] bool isCancellationByUser() const;
229 [[nodiscard]] bool isMessageMasked() const;
230};
231
233
235
236} // namespace governikus
237
238
239QDebug operator <<(QDebug pDbg, const governikus::GlobalStatus& pStatus);
#define defineEnumOperators(enumName)
Definition: EnumHelper.h:33
QDebug operator<<(QDebug pDbg, const governikus::GlobalStatus &pStatus)
Definition: GlobalStatus.h:22
Code getStatusCode() const
bool operator==(const GlobalStatus &pOther) const
GlobalStatus(Code pStatusCode, const ExternalInfoMap &pExternalInformation, const Origin pOrigin=Origin::Client)
Definition: GlobalStatus.h:197
GlobalStatus(Code pStatusCode=Code::Unknown_Error, const Origin pOrigin=Origin::Client)
Definition: GlobalStatus.h:209
QString getExternalInfo(const QString &pToken=QStringLiteral("; ")) const
Origin
Definition: GlobalStatus.h:132
bool is(const Code pStatusCode) const
QString toErrorDescription(const bool pSimplifiedVersion=false) const
bool isMessageMasked() const
bool isCancellationByUser() const
bool isOriginServer() const
QMap< ExternalInformation, QString > ExternalInfoMap
Definition: GlobalStatus.h:148
Origin getOrigin() const
Code
Definition: GlobalStatus.h:28
@ Workflow_Network_Ssl_Certificate_Unsupported_Algorithm_Or_Length
@ Workflow_TrustedChannel_Ssl_Certificate_Unsupported_Algorithm_Or_Length
@ Workflow_TrustedChannel_Ssl_Connection_Unsupported_Algorithm_Or_Length
@ Workflow_Network_Ssl_Connection_Unsupported_Algorithm_Or_Length
GlobalStatus(Code pStatusCode, const QPair< ExternalInformation, QString > &pExternalInformation, const Origin pOrigin=Origin::Client)
Definition: GlobalStatus.h:203
ExternalInformation
Definition: GlobalStatus.h:137
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16