AusweisApp
 
Lade ...
Suche ...
Keine Treffer
ECardApiResult.h
gehe zur Dokumentation dieser Datei
1
4
8
9
10#pragma once
11
12#include "FailureCode.h"
13#include "GlobalStatus.h"
14
15#include <QCoreApplication>
16#include <QJsonObject>
17#include <QMap>
18#include <QPair>
19#include <QSharedData>
20#include <QString>
21#include <optional>
22
23
24class test_ECardApiResult;
25class test_StateRedirectBrowser;
26
27
28namespace governikus
29{
30
31class ECardApiResult
32{
33 Q_GADGET
34 Q_DECLARE_TR_FUNCTIONS(governikus::ECardApiResult)
35
36 friend class IfdMessageResponse;
37 friend class StartPaosResponse;
38 friend class ::test_ECardApiResult;
40
41 public:
42 enum class Major
43 {
48 };
49
87
88 enum class Origin
89 {
91 };
92
93 Q_ENUM(Major)
94 Q_ENUM(Minor)
95 Q_ENUM(Origin)
96
97 private:
98 class ResultData
99 : public QSharedData
100 {
101 public:
102 const Major mMajor;
103 const Minor mMinor;
104 const QString mMessage;
105 const QString mMessageLang;
106 const Origin mOrigin;
107 const std::optional<FailureCode> mFailureCode;
108
109 ResultData(Major pMajor, Minor pMinor, const QString& pMessage, Origin pOrigin, const std::optional<FailureCode>& pFailureCode = {});
110
111 bool operator ==(const ResultData& pOther) const
112 {
113 return mMajor == pOther.mMajor &&
114 mMinor == pOther.mMinor &&
115 mMessage == pOther.mMessage &&
116 mMessageLang == pOther.mMessageLang &&
117 mOrigin == pOther.mOrigin &&
118 mFailureCode == pOther.mFailureCode;
119 }
120
121
122 };
123
124 static const QMap<Major, QString> cMajorResults;
125 static const QMap<Minor, QString> cMinorResults;
126
127 static QMap<GlobalStatus::Code, Minor> cConversionMap1;
128 static QMap<Minor, GlobalStatus::Code> cConversionMap2;
129
130 static void initConversionMaps();
131 static void addConversionElement(GlobalStatus::Code pCode, Minor pMinor);
132 static GlobalStatus::Code toStatus(Minor pMinor);
133 static Minor fromStatus(GlobalStatus::Code pCode);
134
135 static GlobalStatus::Origin toStatus(governikus::ECardApiResult::Origin pSelf);
136 static ECardApiResult::Origin fromStatus(GlobalStatus::Origin pSelf);
137
138 static ECardApiResult fromStatus(const GlobalStatus& pStatus, const std::optional<FailureCode>& pFailureCode);
139
140 static Major parseMajor(const QString& pMajor);
141 static Minor parseMinor(const QString& pMinor);
142
143 QSharedDataPointer<ResultData> d;
144
145 ECardApiResult(Major pMajor, Minor pMinor, const QString& pMessage = QString(), Origin pOrigin = Origin::Client, const std::optional<FailureCode>& pFailureCode = {});
146 explicit ECardApiResult(const QString& pMajor, const QString& pMinor = QString(), const QString& pMessage = QString(), Origin pOrigin = Origin::Client);
147
148 public:
149 explicit ECardApiResult(const GlobalStatus& pStatus, const std::optional<FailureCode>& pFailureCode = {});
150
151 bool operator ==(const ECardApiResult& pResult) const;
152
153 [[nodiscard]] static ECardApiResult createOk();
154
155 static bool isMajor(const QString& pMajor);
156 static bool isMinor(const QString& pMinor);
157 static QString getMessage(Minor pMinor);
158
159 [[nodiscard]] Major getMajor() const;
160 [[nodiscard]] Minor getMinor() const;
161 [[nodiscard]] QString getMessage() const;
162 [[nodiscard]] const QString& getMessageLang() const;
163 [[nodiscard]] const std::optional<FailureCode>& getFailureCode() const;
164
165 [[nodiscard]] static QString getMajorString(Major pMajor);
166 [[nodiscard]] static QString getMinorString(Minor pMinor);
167
168 [[nodiscard]] QString getMajorString() const;
169 [[nodiscard]] QString getMinorString() const;
170
171 [[nodiscard]] bool isValid() const;
172 [[nodiscard]] bool isOk() const;
173 [[nodiscard]] bool isOriginServer() const;
174 [[nodiscard]] QJsonObject toJson() const;
175
176 [[nodiscard]] GlobalStatus toStatus() const;
177 explicit operator GlobalStatus() const;
178};
179
180} // namespace governikus
181
182QDebug operator <<(QDebug pDbg, const governikus::ECardApiResult& pResult);
QDebug operator<<(QDebug pDbg, const governikus::ECardApiResult &pResult)
Definition ECardApiResult.cpp:703
Definition ECardApiResult.h:32
friend class ::test_StateRedirectBrowser
Definition ECardApiResult.h:39
QJsonObject toJson() const
Definition ECardApiResult.cpp:665
Minor
Definition ECardApiResult.h:51
@ AL_Internal_Error
Definition ECardApiResult.h:55
@ KEY_KeyGenerationNotPossible
Definition ECardApiResult.h:79
@ IL_Signature_InvalidCertificatePath
Definition ECardApiResult.h:78
@ AL_Warning_Connection_Disconnected
Definition ECardApiResult.h:59
@ IFDL_IO_RepeatedDataMismatch
Definition ECardApiResult.h:76
@ DP_Trusted_Channel_Establishment_Failed
Definition ECardApiResult.h:65
@ DP_Timeout_Error
Definition ECardApiResult.h:62
@ IFDL_Timeout_Error
Definition ECardApiResult.h:70
@ IFDL_IO_UnknownPINFormat
Definition ECardApiResult.h:77
@ null
Definition ECardApiResult.h:52
@ AL_Unknown_Error
Definition ECardApiResult.h:53
@ AL_Not_Initialized
Definition ECardApiResult.h:58
@ IFDL_UnknownSlot
Definition ECardApiResult.h:71
@ DP_Unknown_Protocol
Definition ECardApiResult.h:66
@ SAL_Invalid_Key
Definition ECardApiResult.h:81
@ IFDL_CancellationByUser
Definition ECardApiResult.h:73
@ AL_Parameter_Error
Definition ECardApiResult.h:56
@ AL_Unknown_API_Function
Definition ECardApiResult.h:57
@ DP_Node_Not_Reachable
Definition ECardApiResult.h:69
@ AL_No_Permission
Definition ECardApiResult.h:54
@ AL_Session_Terminated_Warning
Definition ECardApiResult.h:60
@ SAL_Cancellation_by_User
Definition ECardApiResult.h:80
@ AL_Communication_Error
Definition ECardApiResult.h:61
@ IFDL_IFD_SharingViolation
Definition ECardApiResult.h:74
@ IFDL_Terminal_NoCard
Definition ECardApiResult.h:75
@ DP_Communication_Error
Definition ECardApiResult.h:64
@ SAL_MEAC_CommunityVerificationFailedWarning
Definition ECardApiResult.h:84
@ SAL_MEAC_AgeVerificationFailedWarning
Definition ECardApiResult.h:83
@ SAL_SecurityConditionNotSatisfied
Definition ECardApiResult.h:82
@ IFDL_InvalidSlotHandle
Definition ECardApiResult.h:72
@ DP_Unknown_Webservice_Binding
Definition ECardApiResult.h:68
@ SAL_MEAC_DocumentValidityVerificationFailed
Definition ECardApiResult.h:85
@ DP_Unknown_Cipher_Suite
Definition ECardApiResult.h:67
@ DP_Unknown_Channel_Handle
Definition ECardApiResult.h:63
QString getMajorString() const
Definition ECardApiResult.cpp:577
Minor getMinor() const
Definition ECardApiResult.cpp:541
friend class StartPaosResponse
Definition ECardApiResult.h:37
Major
Definition ECardApiResult.h:43
@ Warning
Definition ECardApiResult.h:46
@ Unknown
Definition ECardApiResult.h:44
@ Error
Definition ECardApiResult.h:47
@ Ok
Definition ECardApiResult.h:45
static bool isMajor(const QString &pMajor)
Definition ECardApiResult.cpp:349
friend class IfdMessageResponse
Definition ECardApiResult.h:36
Major getMajor() const
Definition ECardApiResult.cpp:535
bool isOriginServer() const
Definition ECardApiResult.cpp:611
static bool isMinor(const QString &pMinor)
Definition ECardApiResult.cpp:355
static ECardApiResult createOk()
Definition ECardApiResult.cpp:87
bool operator==(const ECardApiResult &pResult) const
Definition ECardApiResult.cpp:529
const QString & getMessageLang() const
Definition ECardApiResult.cpp:553
Origin
Definition ECardApiResult.h:89
@ Client
Definition ECardApiResult.h:90
@ Server
Definition ECardApiResult.h:90
bool isOk() const
Definition ECardApiResult.cpp:605
QString getMessage() const
Definition ECardApiResult.cpp:547
friend class ::test_ECardApiResult
Definition ECardApiResult.h:38
QString getMinorString() const
Definition ECardApiResult.cpp:583
GlobalStatus toStatus() const
Definition ECardApiResult.cpp:617
bool isValid() const
Definition ECardApiResult.cpp:589
const std::optional< FailureCode > & getFailureCode() const
Definition ECardApiResult.cpp:559
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17
GlobalStatus::Origin Origin
Definition GlobalStatus.h:234