AusweisApp2
Downloader.h
gehe zur Dokumentation dieser Datei
1 
8 #pragma once
9 
10 #include "Env.h"
11 #include "GlobalStatus.h"
12 #include "NetworkManager.h"
13 
14 #include <QNetworkReply>
15 #include <QNetworkRequest>
16 #include <QQueue>
17 #include <QSharedPointer>
18 #include <QSslCipher>
19 #include <QUrl>
20 
21 namespace governikus
22 {
24  : public QObject
25 {
26  Q_OBJECT
27  friend class Env;
28 
29  private:
30  QSharedPointer<QNetworkRequest> mCurrentRequest;
31  QSharedPointer<QNetworkReply> mCurrentReply;
32  QQueue<QSharedPointer<QNetworkRequest>> mPendingRequests;
33 
34  void scheduleDownload(QSharedPointer<QNetworkRequest> pDownloadRequest);
35  void startDownloadIfPending();
36 
37  protected:
38  Downloader();
39  virtual ~Downloader();
41 
42  private Q_SLOTS:
43  void onSslErrors(const QList<QSslError>& pErrors);
44  void onSslHandshakeDone();
45  void onMetadataChanged();
46  void onNetworkReplyFinished();
47 
48  public:
49  Q_INVOKABLE virtual void download(const QUrl& pUpdateUrl);
50  Q_INVOKABLE virtual void downloadIfNew(const QUrl& pUpdateUrl,
51  const QDateTime& pCurrentTimestamp);
52 
53  Q_SIGNALS:
54  void fireDownloadSuccess(const QUrl& pUpdateUrl, const QDateTime& pNewTimestamp, const QByteArray& pData);
55  void fireDownloadFailed(const QUrl& pUpdateUrl, GlobalStatus::Code pErrorCode);
56  void fireDownloadUnnecessary(const QUrl& pUpdateUrl);
57 };
58 
59 } // namespace governikus
TlsChecker.h
governikus::Downloader::getInstance
static Downloader & getInstance()
governikus::NetworkManager::getLoggedStatusCode
static int getLoggedStatusCode(const QSharedPointer< const QNetworkReply > &pReply, const QMessageLogger &pLogger)
Definition: NetworkManager.cpp:298
governikus::GlobalStatus::Code
Code
Definition: GlobalStatus.h:26
LogHandler.h
governikus::Downloader::Downloader
Downloader()
Definition: Downloader.cpp:181
NetworkManager.h
governikus::Env
Definition: Env.h:39
governikus::Downloader::downloadIfNew
virtual Q_INVOKABLE void downloadIfNew(const QUrl &pUpdateUrl, const QDateTime &pCurrentTimestamp)
Definition: Downloader.cpp:207
governikus::Downloader::fireDownloadFailed
void fireDownloadFailed(const QUrl &pUpdateUrl, GlobalStatus::Code pErrorCode)
http_parser.h
GlobalStatus.h
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::Downloader::~Downloader
virtual ~Downloader()
Definition: Downloader.cpp:189
defineSingleton
defineSingleton(Downloader) Downloader &Downloader
Definition: Downloader.cpp:28
governikus::TlsChecker::containsFatalError
static bool containsFatalError(const QSharedPointer< QNetworkReply > &pReply, const QList< QSslError > &pErrors)
Definition: TlsChecker.cpp:274
Env.h
spawnMessageLogger
#define spawnMessageLogger(category)
Definition: LogHandler.h:21
governikus::GlobalStatus::Code::Downloader_File_Not_Found
@ Downloader_File_Not_Found
Downloader.h
governikus::GlobalStatus::Code::Network_Ssl_Establishment_Error
@ Network_Ssl_Establishment_Error
governikus::Downloader::download
virtual Q_INVOKABLE void download(const QUrl &pUpdateUrl)
Definition: Downloader.cpp:199
governikus::NetworkManager::toStatus
static GlobalStatus toStatus(const QSharedPointer< const QNetworkReply > &pNetworkReply)
Definition: NetworkManager.cpp:226
governikus::Downloader::fireDownloadUnnecessary
void fireDownloadUnnecessary(const QUrl &pUpdateUrl)
governikus::GlobalStatus::Code::Network_Other_Error
@ Network_Other_Error
governikus::Downloader
Definition: Downloader.h:25
governikus::TlsChecker::logSslConfig
static void logSslConfig(const QSslConfiguration &pCfg, const QMessageLogger &pLogger)
Definition: TlsChecker.cpp:294
SingletonHelper.h
governikus::Downloader::fireDownloadSuccess
void fireDownloadSuccess(const QUrl &pUpdateUrl, const QDateTime &pNewTimestamp, const QByteArray &pData)
ScopeGuard.h