AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
NetworkManager.h
gehe zur Dokumentation dieser Datei
1 /*
2  * \brief Wrapper around QNetworkAccessManager
3  *
4  * \copyright Copyright (c) 2014-2018 Governikus GmbH & Co. KG, Germany
5  */
6 
7 #pragma once
8 
9 #include "GlobalStatus.h"
10 
11 #include <QAtomicInt>
12 #include <QAuthenticator>
13 #include <QDebug>
14 #include <QNetworkAccessManager>
15 #include <QNetworkProxy>
16 #include <QNetworkReply>
17 #include <QSsl>
18 
19 namespace governikus
20 {
21 
23  : public QObject
24 {
25  Q_OBJECT
26 
27  private:
28  bool mApplicationExitInProgress;
29  QAtomicInt mOpenConnectionCount;
30  void trackConnection(QNetworkReply* pResponse, const int pTimeoutInMilliSeconds);
31 
32  static bool mLockProxy;
33  QScopedPointer<QNetworkAccessManager, QScopedPointerDeleteLater> mNetAccessManager;
34 
35  QString getUserAgentHeader() const;
36 
37  public Q_SLOTS:
38  void onShutdown();
39 
40  protected:
42  virtual ~NetworkManager();
43 
44  public:
45  enum class NetworkError
46  {
48  TimeOut,
49  ProxyError,
50  SslError,
51  OtherError,
52  };
53  Q_ENUM(NetworkError)
54 
55  static void setApplicationProxyFactory();
56  static void lockProxy(bool pLocked)
57  {
58  mLockProxy = pLocked;
59  }
60 
61 
62  static NetworkManager& getInstance();
63  static NetworkError toNetworkError(const QNetworkReply* const pNetworkReply);
64  static GlobalStatus toTrustedChannelStatus(const QNetworkReply* const pNetworkReply);
65  static GlobalStatus toStatus(const QNetworkReply* const pNetworkReply);
66  static QString getTlsVersionString(QSsl::SslProtocol pProtocol);
67 
68  virtual void clearConnections();
69  virtual QNetworkReply* paos(QNetworkRequest& pRequest,
70  const QByteArray& pNamespace,
71  const QByteArray& pData,
72  bool pUsePsk = true,
73  const QByteArray& pSslSession = QByteArray(),
74  int pTimeoutInMilliSeconds = 30000);
75  virtual QNetworkReply* get(QNetworkRequest& pRequest,
76  const QByteArray& pSslSession = QByteArray(),
77  int pTimeoutInMilliSeconds = 30000);
78 
79  virtual bool checkUpdateServerCertificate(const QNetworkReply& pReply);
80 
82 
83  Q_SIGNALS:
84  void fireProxyAuthenticationRequired(const QNetworkProxy& pProxy, QAuthenticator* pAuthenticator);
85  void fireShutdown();
86 };
87 
88 } /* namespace governikus */
89 
90 QDebug operator <<(QDebug pDbg, QSsl::SslProtocol pProtocol);
static GlobalStatus toTrustedChannelStatus(const QNetworkReply *const pNetworkReply)
Definition: NetworkManager.cpp:168
Definition: NetworkManager.h:22
void fireProxyAuthenticationRequired(const QNetworkProxy &pProxy, QAuthenticator *pAuthenticator)
virtual void clearConnections()
Definition: NetworkManager.cpp:58
virtual ~NetworkManager()
Definition: NetworkManager.cpp:41
Definition: GlobalStatus.h:18
static NetworkManager & getInstance()
Definition: NetworkManager.cpp:46
NetworkManager()
Definition: NetworkManager.cpp:29
static QString getTlsVersionString(QSsl::SslProtocol pProtocol)
void onShutdown()
Definition: NetworkManager.cpp:131
QDebug operator<<(QDebug pDbg, const governikus::CVCertificate &pCvc)
Definition: CVCertificate.cpp:146
static NetworkError toNetworkError(const QNetworkReply *const pNetworkReply)
Definition: NetworkManager.cpp:138
static void lockProxy(bool pLocked)
Definition: NetworkManager.h:56
virtual QNetworkReply * paos(QNetworkRequest &pRequest, const QByteArray &pNamespace, const QByteArray &pData, bool pUsePsk=true, const QByteArray &pSslSession=QByteArray(), int pTimeoutInMilliSeconds=30000)
Definition: NetworkManager.cpp:64
static void setApplicationProxyFactory()
Definition: NetworkManager.cpp:281
static GlobalStatus toStatus(const QNetworkReply *const pNetworkReply)
Definition: NetworkManager.cpp:192
int getOpenConnectionCount()
Definition: NetworkManager.cpp:52
virtual bool checkUpdateServerCertificate(const QNetworkReply &pReply)
Definition: NetworkManager.cpp:114
NetworkError
Definition: NetworkManager.h:45