diff options
author | Kai Koehne <kai.koehne@theqtcompany.com> | 2015-04-30 15:49:40 +0200 |
---|---|---|
committer | Kai Koehne <kai.koehne@theqtcompany.com> | 2015-04-30 15:49:54 +0200 |
commit | be481e3af7c302f70e1d83406de40203218deef2 (patch) | |
tree | 5a10568c2c1d0ee7a0070f928c5437db80c2266c /src/libs/installer/downloadfiletask_p.h | |
parent | a1418fbffd4c786b5de8200e05a9ff26d8b90c3c (diff) | |
parent | ef48a0c26c0771c9bfa86130f00be8fa00330289 (diff) |
Merge remote-tracking branch 'origin/2.0'
Change-Id: I2c66fe453db03b833a57a4a400cf859096f81165
Diffstat (limited to 'src/libs/installer/downloadfiletask_p.h')
-rw-r--r-- | src/libs/installer/downloadfiletask_p.h | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/src/libs/installer/downloadfiletask_p.h b/src/libs/installer/downloadfiletask_p.h index d91d335b3..a2f2969aa 100644 --- a/src/libs/installer/downloadfiletask_p.h +++ b/src/libs/installer/downloadfiletask_p.h @@ -36,30 +36,40 @@ #define DOWNLOADFILETASK_P_H #include "downloadfiletask.h" +#include <observer.h> +#include <QFile> #include <QNetworkAccessManager> #include <QNetworkReply> #include <QNetworkRequest> +#include <memory> +#include <unordered_map> + QT_BEGIN_NAMESPACE -class QFile; class QSslError; QT_END_NAMESPACE namespace QInstaller { -class FileTaskObserver; - struct Data { + Q_DISABLE_COPY(Data) + Data() - : file(0), observer(0) {} - Data(QFile *f, FileTaskObserver *o, const FileTaskItem &fti) - : file(f), observer(o), taskItem(fti) + : file(Q_NULLPTR) + , observer(Q_NULLPTR) {} - QFile *file; - FileTaskObserver *observer; + + Data(const FileTaskItem &fti) + : taskItem(fti) + , file(Q_NULLPTR) + , observer(new FileTaskObserver(QCryptographicHash::Sha1)) + {} + FileTaskItem taskItem; + std::unique_ptr<QFile> file; + std::unique_ptr<FileTaskObserver> observer; }; class Downloader : public QObject @@ -98,8 +108,8 @@ private: int m_finished; QNetworkAccessManager m_nam; QList<FileTaskItem> m_items; - QHash<QNetworkReply*, Data> m_downloads; QMultiHash<QNetworkReply*, QUrl> m_redirects; + std::unordered_map<QNetworkReply*, std::unique_ptr<Data>> m_downloads; }; } // namespace QInstaller |