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