AusweisApp
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
39
45
47
97
99
101
108
126
128
134 };
135
136 enum class Origin
137 {
139 };
140
142 {
145 LAST_URL,
152 };
153
154 using ExternalInfoMap = QMap<ExternalInformation, QString>;
155
156 Q_ENUM(Code)
157 Q_ENUM(Origin)
158 Q_ENUM(ExternalInformation)
159
160 private:
161 class InternalStatus
162 : public QSharedData
163 {
164 public:
165 const Code mStatusCode;
166 const ExternalInfoMap mExternalInformation;
167 const Origin mOrigin;
168
169 InternalStatus(Code pStatusCode, const ExternalInfoMap& pExternalInformation, const Origin pOrigin)
170 : mStatusCode(pStatusCode)
171 , mExternalInformation(pExternalInformation)
172 , mOrigin(pOrigin)
173 {
174 }
175
176
177 InternalStatus(Code pStatusCode, const QPair<ExternalInformation, QString>& pExternalInformation, const Origin pOrigin)
178 : mStatusCode(pStatusCode)
179 , mExternalInformation({
180 {pExternalInformation.first, pExternalInformation.second}
181 })
182 , mOrigin(pOrigin)
183 {
184 }
185
186
187 bool operator ==(const InternalStatus& pOther) const
188 {
189 return mStatusCode == pOther.mStatusCode &&
190 mExternalInformation == pOther.mExternalInformation &&
191 mOrigin == pOther.mOrigin;
192 }
193
194
195 };
196
197 QSharedDataPointer<InternalStatus> d;
198 [[nodiscard]] QString getExternalInfo(ExternalInformation pType) const;
199
200 [[nodiscard]] QString toErrorDescriptionInternal() const;
201
202 public:
203 GlobalStatus(Code pStatusCode, const ExternalInfoMap& pExternalInformation, const Origin pOrigin = Origin::Client)
204 : d(new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
205 {
206 }
207
208
209 GlobalStatus(Code pStatusCode, const QPair<ExternalInformation, QString>& pExternalInformation, const Origin pOrigin = Origin::Client)
210 : d(new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
211 {
212 }
213
214
215 GlobalStatus(Code pStatusCode = Code::Unknown_Error, const Origin pOrigin = Origin::Client)
216 : d(new InternalStatus(pStatusCode, ExternalInfoMap(), pOrigin))
217 {
218 }
219
220
221 bool operator ==(const GlobalStatus& pOther) const;
222 [[nodiscard]] bool is(const Code pStatusCode) const;
223
224 [[nodiscard]] Code getStatusCode() const;
225
226 [[nodiscard]] QString toErrorDescription(const bool pSimplifiedVersion = false) const;
227 [[nodiscard]] QString getExternalInfo(const QString& pToken = QStringLiteral("; ")) const;
228
229 [[nodiscard]] Origin getOrigin() const;
230 [[nodiscard]] bool isOriginServer() const;
231
232 [[nodiscard]] bool isNoError() const;
233 [[nodiscard]] bool isError() const;
234 [[nodiscard]] bool isCancellationByUser() const;
235 [[nodiscard]] bool isMessageMasked() const;
236};
237
239
241
242} // namespace governikus
243
244
245QDebug operator <<(QDebug pDbg, const governikus::GlobalStatus& pStatus);
#define defineEnumOperators(enumName)
Definition EnumHelper.h:25
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:203
GlobalStatus(Code pStatusCode=Code::Unknown_Error, const Origin pOrigin=Origin::Client)
Definition GlobalStatus.h:215
QString getExternalInfo(const QString &pToken=QStringLiteral("; ")) const
Origin
Definition GlobalStatus.h:137
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:154
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:209
ExternalInformation
Definition GlobalStatus.h:142
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:16