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
93
95
97
104
122
124
130 };
131
132 enum class Origin
133 {
135 };
136
138 {
141 LAST_URL,
147 };
148
149 using ExternalInfoMap = QMap<ExternalInformation, QString>;
150
151 Q_ENUM(Code)
152 Q_ENUM(Origin)
153 Q_ENUM(ExternalInformation)
154
155 private:
156 class InternalStatus
157 : public QSharedData
158 {
159 public:
160 const Code mStatusCode;
161 const ExternalInfoMap mExternalInformation;
162 const Origin mOrigin;
163
164 InternalStatus(Code pStatusCode, const ExternalInfoMap& pExternalInformation, const Origin pOrigin)
165 : mStatusCode(pStatusCode)
166 , mExternalInformation(pExternalInformation)
167 , mOrigin(pOrigin)
168 {
169 }
170
171
172 InternalStatus(Code pStatusCode, const QPair<ExternalInformation, QString>& pExternalInformation, const Origin pOrigin)
173 : mStatusCode(pStatusCode)
174 , mExternalInformation({
175 {pExternalInformation.first, pExternalInformation.second}
176 })
177 , mOrigin(pOrigin)
178 {
179 }
180
181
182 bool operator ==(const InternalStatus& pOther) const
183 {
184 return mStatusCode == pOther.mStatusCode &&
185 mExternalInformation == pOther.mExternalInformation &&
186 mOrigin == pOther.mOrigin;
187 }
188
189
190 };
191
192 QSharedDataPointer<InternalStatus> d;
193 [[nodiscard]] QString getExternalInfo(ExternalInformation pType) const;
194
195 [[nodiscard]] QString toErrorDescriptionInternal() const;
196
197 public:
198 GlobalStatus(Code pStatusCode, const ExternalInfoMap& pExternalInformation, const Origin pOrigin = Origin::Client)
199 : d(new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
200 {
201 }
202
203
204 GlobalStatus(Code pStatusCode, const QPair<ExternalInformation, QString>& pExternalInformation, const Origin pOrigin = Origin::Client)
205 : d(new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
206 {
207 }
208
209
210 GlobalStatus(Code pStatusCode = Code::Unknown_Error, const Origin pOrigin = Origin::Client)
211 : d(new InternalStatus(pStatusCode, ExternalInfoMap(), pOrigin))
212 {
213 }
214
215
216 bool operator ==(const GlobalStatus& pOther) const;
217 [[nodiscard]] bool is(const Code pStatusCode) const;
218
219 [[nodiscard]] Code getStatusCode() const;
220
221 [[nodiscard]] QString toErrorDescription(const bool pSimplifiedVersion = false) const;
222 [[nodiscard]] QString getExternalInfo(const QString& pToken = QStringLiteral("; ")) const;
223
224 [[nodiscard]] Origin getOrigin() const;
225 [[nodiscard]] bool isOriginServer() const;
226
227 [[nodiscard]] bool isNoError() const;
228 [[nodiscard]] bool isError() const;
229 [[nodiscard]] bool isCancellationByUser() const;
230 [[nodiscard]] bool isMessageMasked() const;
231};
232
234
236
237} // namespace governikus
238
239
240QDebug 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:198
GlobalStatus(Code pStatusCode=Code::Unknown_Error, const Origin pOrigin=Origin::Client)
Definition GlobalStatus.h:210
QString getExternalInfo(const QString &pToken=QStringLiteral("; ")) const
Origin
Definition GlobalStatus.h:133
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:149
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:204
ExternalInformation
Definition GlobalStatus.h:138
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:16