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
83
85
87
94
110
112
118 };
119
120 enum class Origin
121 {
123 };
124
126 {
128 LAST_URL,
134 };
135
136 using ExternalInfoMap = QMap<ExternalInformation, QString>;
137
138 Q_ENUM(Code)
139 Q_ENUM(Origin)
140 Q_ENUM(ExternalInformation)
141
142 private:
143 class InternalStatus
144 : public QSharedData
145 {
146 public:
147 const Code mStatusCode;
148 const ExternalInfoMap mExternalInformation;
149 const Origin mOrigin;
150
151 InternalStatus(Code pStatusCode, const ExternalInfoMap& pExternalInformation, const Origin pOrigin)
152 : mStatusCode(pStatusCode)
153 , mExternalInformation(pExternalInformation)
154 , mOrigin(pOrigin)
155 {
156 }
157
158
159 InternalStatus(Code pStatusCode, const QPair<ExternalInformation, QString>& pExternalInformation, const Origin pOrigin)
160 : mStatusCode(pStatusCode)
161 , mExternalInformation({
162 {pExternalInformation.first, pExternalInformation.second}
163 })
164 , mOrigin(pOrigin)
165 {
166 }
167
168
169 bool operator ==(const InternalStatus& pOther) const
170 {
171 return mStatusCode == pOther.mStatusCode &&
172 mExternalInformation == pOther.mExternalInformation &&
173 mOrigin == pOther.mOrigin;
174 }
175
176
177 };
178
179 QSharedDataPointer<InternalStatus> d;
180 [[nodiscard]] QString getExternalInfo(ExternalInformation pType) const;
181
182 [[nodiscard]] QString toErrorDescriptionInternal() const;
183
184 public:
185 GlobalStatus(Code pStatusCode, const ExternalInfoMap& pExternalInformation, const Origin pOrigin = Origin::Client)
186 : d(new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
187 {
188 }
189
190
191 GlobalStatus(Code pStatusCode, const QPair<ExternalInformation, QString>& pExternalInformation, const Origin pOrigin = Origin::Client)
192 : d(new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
193 {
194 }
195
196
197 GlobalStatus(Code pStatusCode = Code::Unknown_Error, const Origin pOrigin = Origin::Client)
198 : d(new InternalStatus(pStatusCode, ExternalInfoMap(), pOrigin))
199 {
200 }
201
202
203 bool operator ==(const GlobalStatus& pOther) const;
204 [[nodiscard]] bool is(const Code pStatusCode) const;
205
206 [[nodiscard]] Code getStatusCode() const;
207
208 [[nodiscard]] QString toErrorDescription(const bool pSimplifiedVersion = false) const;
209 [[nodiscard]] QString getExternalInfo(const QString& pToken = QStringLiteral("; ")) const;
210
211 [[nodiscard]] Origin getOrigin() const;
212 [[nodiscard]] bool isOriginServer() const;
213
214 [[nodiscard]] bool isNoError() const;
215 [[nodiscard]] bool isError() const;
216 [[nodiscard]] bool isCancellationByUser() const;
217 [[nodiscard]] bool isMessageMasked() const;
218};
219
221
223
224} // namespace governikus
225
226
227QDebug operator <<(QDebug pDbg, const governikus::GlobalStatus& pStatus);
#define defineEnumOperators(enumName)
Definition: EnumHelper.h:30
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:185
GlobalStatus(Code pStatusCode=Code::Unknown_Error, const Origin pOrigin=Origin::Client)
Definition: GlobalStatus.h:197
QString getExternalInfo(const QString &pToken=QStringLiteral("; ")) const
Origin
Definition: GlobalStatus.h:121
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:136
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_Network_Ssl_Connection_Unsupported_Algorithm_Or_Length
GlobalStatus(Code pStatusCode, const QPair< ExternalInformation, QString > &pExternalInformation, const Origin pOrigin=Origin::Client)
Definition: GlobalStatus.h:191
ExternalInformation
Definition: GlobalStatus.h:126
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15