AusweisApp2
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 
16 namespace governikus
17 {
18 
20 {
21  Q_GADGET
22  Q_DECLARE_TR_FUNCTIONS(governikus::GlobalStatus)
23 
24  public:
25  enum class Code
26  {
28  No_Error,
29 
35 
39 
79 
81 
83 
90 
93 
108 
110 
116  };
117 
118  enum class Origin
119  {
120  Server, Client
121  };
122 
124  {
126  LAST_URL,
128  REDIRECT_URL,
130  URL_SCHEME,
132  };
133 
134  using ExternalInfoMap = QMap<ExternalInformation, QString>;
135 
136  Q_ENUM(Code)
137  Q_ENUM(Origin)
138  Q_ENUM(ExternalInformation)
139 
140  private:
141  class InternalStatus
142  : public QSharedData
143  {
144  public:
145  const Code mStatusCode;
146  const ExternalInfoMap mExternalInformation;
147  const Origin mOrigin;
148 
149  InternalStatus(Code pStatusCode, const ExternalInfoMap& pExternalInformation, const Origin pOrigin)
150  : mStatusCode(pStatusCode)
151  , mExternalInformation(pExternalInformation)
152  , mOrigin(pOrigin)
153  {
154  }
155 
156 
157  InternalStatus(Code pStatusCode, const QPair<ExternalInformation, QString>& pExternalInformation, const Origin pOrigin)
158  : mStatusCode(pStatusCode)
159  , mExternalInformation({
160  {pExternalInformation.first, pExternalInformation.second}
161  })
162  , mOrigin(pOrigin)
163  {
164  }
165 
166 
167  bool operator ==(const InternalStatus& pOther) const
168  {
169  return mStatusCode == pOther.mStatusCode &&
170  mExternalInformation == pOther.mExternalInformation &&
171  mOrigin == pOther.mOrigin;
172  }
173 
174 
175  };
176 
177  QSharedDataPointer<InternalStatus> d;
178  QString getExternalInfo(ExternalInformation pType) const;
179 
180  QString toErrorDescriptionInternal() const;
181 
182  public:
183  GlobalStatus(Code pStatusCode, const ExternalInfoMap& pExternalInformation, const Origin pOrigin = Origin::Client)
184  : d(new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
185  {
186  }
187 
188 
189  GlobalStatus(Code pStatusCode, const QPair<ExternalInformation, QString>& pExternalInformation, const Origin pOrigin = Origin::Client)
190  : d(new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
191  {
192  }
193 
194 
196  : d(new InternalStatus(pStatusCode, ExternalInfoMap(), pOrigin))
197  {
198  }
199 
200 
201  bool operator ==(const GlobalStatus& pOther) const;
202  bool is(const Code pStatusCode) const;
203 
204  Code getStatusCode() const;
205 
206  QString toErrorDescription(const bool pSimplifiedVersion = false) const;
207  QString getExternalInfo(const QString& pToken = QStringLiteral("; ")) const;
208 
209  Origin getOrigin() const;
210  bool isOriginServer() const;
211 
212  bool isNoError() const;
213  bool isError() const;
214  bool isCancellationByUser() const;
215  bool isMessageMasked() const;
216 };
217 
219 
221 
222 } // namespace governikus
223 
224 
225 QDebug operator <<(QDebug pDbg, const governikus::GlobalStatus& pStatus);
bool isError() const
Definition: GlobalStatus.cpp:427
QString toErrorDescription(const bool pSimplifiedVersion=false) const
Definition: GlobalStatus.cpp:90
Code
Definition: GlobalStatus.h:25
bool is(const Code pStatusCode) const
Definition: GlobalStatus.cpp:78
GlobalStatus(Code pStatusCode=Code::Unknown_Error, const Origin pOrigin=Origin::Client)
Definition: GlobalStatus.h:195
bool operator==(const GlobalStatus &pOther) const
Definition: GlobalStatus.cpp:72
GlobalStatus(Code pStatusCode, const ExternalInfoMap &pExternalInformation, const Origin pOrigin=Origin::Client)
Definition: GlobalStatus.h:183
bool isOriginServer() const
Definition: GlobalStatus.cpp:415
Code getStatusCode() const
Definition: GlobalStatus.cpp:84
GlobalStatus(Code pStatusCode, const QPair< ExternalInformation, QString > &pExternalInformation, const Origin pOrigin=Origin::Client)
Definition: GlobalStatus.h:189
Definition: GlobalStatus.h:19
Origin getOrigin() const
Definition: GlobalStatus.cpp:409
bool isNoError() const
Definition: GlobalStatus.cpp:421
bool isMessageMasked() const
Definition: GlobalStatus.cpp:25
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
QMap< ExternalInformation, QString > ExternalInfoMap
Definition: GlobalStatus.h:134
bool isCancellationByUser() const
Definition: GlobalStatus.cpp:433
#define defineEnumOperators(enumName)
Definition: EnumHelper.h:17
ExternalInformation
Definition: GlobalStatus.h:123
Origin
Definition: GlobalStatus.h:118
QDebug operator<<(QDebug pDbg, const governikus::GlobalStatus &pStatus)
Definition: GlobalStatus.cpp:441