AusweisApp
 
Lade ...
Suche ...
Keine Treffer
GlobalStatus.h
gehe zur Dokumentation dieser Datei
1
4
5#pragma once
6
7#include "EnumHelper.h"
8
9#include <QCoreApplication>
10#include <QMap>
11#include <QPair>
12#include <QSharedData>
13
14
15namespace governikus
16{
17
19{
20 Q_GADGET
21 Q_DECLARE_TR_FUNCTIONS(governikus::GlobalStatus)
22
23 public:
24 enum class Code
25 {
28
36
42
44
94
96
98
105
123
125
131 };
132
133 enum class Origin
134 {
136 };
137
150
151 using ExternalInfoMap = QMap<ExternalInformation, QString>;
152
153 Q_ENUM(Code)
154 Q_ENUM(Origin)
155 Q_ENUM(ExternalInformation)
156
157 private:
158 class InternalStatus
159 : public QSharedData
160 {
161 public:
162 const Code mStatusCode;
163 const ExternalInfoMap mExternalInformation;
164 const Origin mOrigin;
165
166 InternalStatus(Code pStatusCode, const ExternalInfoMap& pExternalInformation, const Origin pOrigin)
167 : mStatusCode(pStatusCode)
168 , mExternalInformation(pExternalInformation)
169 , mOrigin(pOrigin)
170 {
171 }
172
173
174 InternalStatus(Code pStatusCode, const QPair<ExternalInformation, QString>& pExternalInformation, const Origin pOrigin)
175 : mStatusCode(pStatusCode)
176 , mExternalInformation({
177 {pExternalInformation.first, pExternalInformation.second}
178 })
179 , mOrigin(pOrigin)
180 {
181 }
182
183
184 bool operator ==(const InternalStatus& pOther) const
185 {
186 return mStatusCode == pOther.mStatusCode &&
187 mExternalInformation == pOther.mExternalInformation &&
188 mOrigin == pOther.mOrigin;
189 }
190
191
192 };
193
194 QSharedDataPointer<InternalStatus> d;
195 [[nodiscard]] QString getExternalInfo(ExternalInformation pType) const;
196
197 [[nodiscard]] QString toErrorDescriptionInternal() const;
198
199 public:
200 GlobalStatus(Code pStatusCode, const ExternalInfoMap& pExternalInformation, const Origin pOrigin = Origin::Client)
201 : d(new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
202 {
203 }
204
205
206 GlobalStatus(Code pStatusCode, const QPair<ExternalInformation, QString>& pExternalInformation, const Origin pOrigin = Origin::Client)
207 : d(new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
208 {
209 }
210
211
212 GlobalStatus(Code pStatusCode = Code::Unknown_Error, const Origin pOrigin = Origin::Client)
213 : d(new InternalStatus(pStatusCode, ExternalInfoMap(), pOrigin))
214 {
215 }
216
217
218 bool operator ==(const GlobalStatus& pOther) const;
219 [[nodiscard]] bool is(const Code pStatusCode) const;
220
221 [[nodiscard]] Code getStatusCode() const;
222
223 [[nodiscard]] QString toErrorDescription(const bool pSimplifiedVersion = false) const;
224 [[nodiscard]] QString getExternalInfo(const QString& pToken = QStringLiteral("; ")) const;
225
226 [[nodiscard]] Origin getOrigin() const;
227 [[nodiscard]] bool isOriginServer() const;
228
229 [[nodiscard]] bool isNoError() const;
230 [[nodiscard]] bool isError() const;
231 [[nodiscard]] bool isCancellationByUser() const;
232 [[nodiscard]] bool isMessageMasked() const;
233};
234
236
238
239} // namespace governikus
240
241
242QDebug operator <<(QDebug pDbg, const governikus::GlobalStatus& pStatus);
#define defineEnumOperators(enumName)
Definition EnumHelper.h:12
QDebug operator<<(QDebug pDbg, const governikus::GlobalStatus &pStatus)
Definition GlobalStatus.h:19
Code getStatusCode() const
bool operator==(const GlobalStatus &pOther) const
GlobalStatus(Code pStatusCode, const ExternalInfoMap &pExternalInformation, const Origin pOrigin=Origin::Client)
Definition GlobalStatus.h:200
GlobalStatus(Code pStatusCode=Code::Unknown_Error, const Origin pOrigin=Origin::Client)
Definition GlobalStatus.h:212
QString getExternalInfo(const QString &pToken=QStringLiteral("; ")) const
Origin
Definition GlobalStatus.h:134
@ Client
Definition GlobalStatus.h:135
@ Server
Definition GlobalStatus.h:135
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:151
Origin getOrigin() const
Code
Definition GlobalStatus.h:25
@ Card_Invalid_Can
Definition GlobalStatus.h:114
@ Workflow_TrustedChannel_Hash_Not_In_Description
Definition GlobalStatus.h:68
@ Workflow_Smart_eID_Personalization_Failed
Definition GlobalStatus.h:92
@ Card_Puk_Blocked
Definition GlobalStatus.h:118
@ Workflow_TrustedChannel_No_Data_Received
Definition GlobalStatus.h:69
@ Workflow_Wrong_Length_Error
Definition GlobalStatus.h:59
@ Workflow_TrustedChannel_Client_Error
Definition GlobalStatus.h:67
@ Network_TimeOut
Definition GlobalStatus.h:33
@ Workflow_Network_Ssl_Certificate_Unsupported_Algorithm_Or_Length
Definition GlobalStatus.h:80
@ Paos_Generic_Server_Error
Definition GlobalStatus.h:97
@ Paos_Error_SAL_Cancellation_by_User
Definition GlobalStatus.h:103
@ Workflow_Cancellation_By_User
Definition GlobalStatus.h:48
@ Workflow_AlreadyInProgress_Error
Definition GlobalStatus.h:45
@ Workflow_Network_Ssl_Hash_Not_In_Certificate_Description
Definition GlobalStatus.h:81
@ Workflow_Reader_Became_Inaccessible
Definition GlobalStatus.h:77
@ Paos_Error_AL_Internal_Error
Definition GlobalStatus.h:100
@ Workflow_Smart_eID_ServiceInformation_Query_Failed
Definition GlobalStatus.h:90
@ Workflow_Unknown_Paos_From_EidServer
Definition GlobalStatus.h:51
@ Paos_Error_AL_Communication_Error
Definition GlobalStatus.h:101
@ Workflow_TrustedChannel_Proxy_Error
Definition GlobalStatus.h:74
@ Paos_Error_AL_Unknown_Error
Definition GlobalStatus.h:99
@ Card_Pin_Not_Blocked
Definition GlobalStatus.h:117
@ Card_Communication_Error
Definition GlobalStatus.h:107
@ Workflow_TrustedChannel_ServiceUnavailable
Definition GlobalStatus.h:72
@ Workflow_Start_Paos_Response_Missing
Definition GlobalStatus.h:52
@ Workflow_TrustedChannel_Ssl_Certificate_Unsupported_Algorithm_Or_Length
Definition GlobalStatus.h:71
@ Workflow_Smart_eID_Personalization_Denied
Definition GlobalStatus.h:93
@ Workflow_Network_Empty_Redirect_Url
Definition GlobalStatus.h:82
@ Workflow_TrustedChannel_Server_Format_Error
Definition GlobalStatus.h:75
@ Workflow_TrustedChannel_Server_Error
Definition GlobalStatus.h:66
@ IfdConnector_InvalidRequest
Definition GlobalStatus.h:126
@ Downloader_Missing_Platform
Definition GlobalStatus.h:40
@ Workflow_Unexpected_Message_From_EidServer
Definition GlobalStatus.h:53
@ Workflow_No_Unique_AtCvc
Definition GlobalStatus.h:56
@ Workflow_Smart_eID_Applet_Preparation_Failed
Definition GlobalStatus.h:88
@ Workflow_No_Permission_Error
Definition GlobalStatus.h:58
@ IfdConnector_ConnectionError
Definition GlobalStatus.h:129
@ Workflow_Card_Removed
Definition GlobalStatus.h:49
@ IfdConnector_RemoteHostRefusedConnection
Definition GlobalStatus.h:130
@ No_Error
Definition GlobalStatus.h:27
@ Workflow_TrustedChannel_Establishment_Error
Definition GlobalStatus.h:65
@ Workflow_Cannot_Confirm_IdCard_Authenticity
Definition GlobalStatus.h:50
@ Card_Unexpected_Transmit_Status
Definition GlobalStatus.h:109
@ Workflow_Smart_eID_PrePersonalization_Failed
Definition GlobalStatus.h:91
@ Workflow_Wrong_Parameter_Invocation
Definition GlobalStatus.h:86
@ IfdConnector_ConnectionTimeout
Definition GlobalStatus.h:128
@ Workflow_Smart_eID_Unavailable
Definition GlobalStatus.h:87
@ Unknown_Error
Definition GlobalStatus.h:26
@ Workflow_Server_Incomplete_Information_Provided
Definition GlobalStatus.h:78
@ Workflow_TrustedChannel_Other_Network_Error
Definition GlobalStatus.h:76
@ Workflow_Preverification_Error
Definition GlobalStatus.h:55
@ Card_ValidityVerificationFailed
Definition GlobalStatus.h:121
@ Card_NewPin_Invalid_Length
Definition GlobalStatus.h:120
@ Card_Pin_Deactivated
Definition GlobalStatus.h:112
@ Network_ClientError
Definition GlobalStatus.h:31
@ Workflow_Network_Expected_Redirect
Definition GlobalStatus.h:83
@ Workflow_Network_Malformed_Redirect_Url
Definition GlobalStatus.h:85
@ Update_Execution_Failed
Definition GlobalStatus.h:43
@ Workflow_Network_Invalid_Scheme
Definition GlobalStatus.h:84
@ Workflow_Certificate_No_Url_In_Description
Definition GlobalStatus.h:61
@ Downloader_Cannot_Save_File
Definition GlobalStatus.h:38
@ RemoteReader_CloseCode_AbnormalClose
Definition GlobalStatus.h:124
@ Workflow_Smart_eID_Authentication_Failed
Definition GlobalStatus.h:89
@ IfdConnector_NoSupportedApiLevel
Definition GlobalStatus.h:127
@ Workflow_TrustedChannel_Ssl_Connection_Unsupported_Algorithm_Or_Length
Definition GlobalStatus.h:70
@ Paos_Error_SAL_Invalid_Key
Definition GlobalStatus.h:104
@ Workflow_Network_Ssl_Connection_Unsupported_Algorithm_Or_Length
Definition GlobalStatus.h:79
@ Network_Ssl_Establishment_Error
Definition GlobalStatus.h:32
@ Card_Invalid_Puk
Definition GlobalStatus.h:115
@ Network_Proxy_Error
Definition GlobalStatus.h:34
@ Workflow_Certificate_Sop_Error
Definition GlobalStatus.h:63
@ Network_ServerError
Definition GlobalStatus.h:30
@ Downloader_Aborted
Definition GlobalStatus.h:41
@ Network_ServiceUnavailable
Definition GlobalStatus.h:29
@ Downloader_Data_Corrupted
Definition GlobalStatus.h:39
@ Workflow_Certificate_Hash_Error
Definition GlobalStatus.h:62
@ Card_Protocol_Error
Definition GlobalStatus.h:108
@ Card_NewPin_Mismatch
Definition GlobalStatus.h:119
@ Workflow_TrustedChannel_TimeOut
Definition GlobalStatus.h:73
@ Card_Cancellation_By_User
Definition GlobalStatus.h:110
@ Paos_Unexpected_Warning
Definition GlobalStatus.h:95
@ Card_Smart_Invalid
Definition GlobalStatus.h:122
@ Network_Other_Error
Definition GlobalStatus.h:35
@ Paos_Error_DP_Trusted_Channel_Establishment_Failed
Definition GlobalStatus.h:102
@ Workflow_No_Unique_DvCvc
Definition GlobalStatus.h:57
@ Card_Input_TimeOut
Definition GlobalStatus.h:111
@ Workflow_InternalError_BeforeTcToken
Definition GlobalStatus.h:47
@ Card_Not_Found
Definition GlobalStatus.h:106
@ Downloader_File_Not_Found
Definition GlobalStatus.h:37
@ Card_Pin_Blocked
Definition GlobalStatus.h:116
@ Card_Invalid_Pin
Definition GlobalStatus.h:113
@ Workflow_Preverification_Developermode_Error
Definition GlobalStatus.h:54
@ Workflow_Communication_Missing_Redirect_Url
Definition GlobalStatus.h:46
@ Workflow_Browser_Transmission_Error
Definition GlobalStatus.h:64
@ Workflow_Certificate_No_Description
Definition GlobalStatus.h:60
GlobalStatus(Code pStatusCode, const QPair< ExternalInformation, QString > &pExternalInformation, const Origin pOrigin=Origin::Client)
Definition GlobalStatus.h:206
ExternalInformation
Definition GlobalStatus.h:139
@ LAST_URL
Definition GlobalStatus.h:142
@ PERSONALIZATION_RESTRICTION_DATE
Definition GlobalStatus.h:148
@ ECARDAPI_ERROR
Definition GlobalStatus.h:140
@ ECARDAPI_SERVERMESSAGE
Definition GlobalStatus.h:141
@ ACTIVATION_ERROR
Definition GlobalStatus.h:147
@ REDIRECT_URL
Definition GlobalStatus.h:144
@ CERTIFICATE_ISSUER_NAME
Definition GlobalStatus.h:145
@ HTTP_STATUS_CODE
Definition GlobalStatus.h:143
@ URL_SCHEME
Definition GlobalStatus.h:146
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17
GlobalStatus::Origin Origin
Definition GlobalStatus.h:235