summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/downloadfiletask_p.h
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@theqtcompany.com>2015-04-30 15:49:40 +0200
committerKai Koehne <kai.koehne@theqtcompany.com>2015-04-30 15:49:54 +0200
commitbe481e3af7c302f70e1d83406de40203218deef2 (patch)
tree5a10568c2c1d0ee7a0070f928c5437db80c2266c /src/libs/installer/downloadfiletask_p.h
parenta1418fbffd4c786b5de8200e05a9ff26d8b90c3c (diff)
parentef48a0c26c0771c9bfa86130f00be8fa00330289 (diff)
Merge remote-tracking branch 'origin/2.0'
Diffstat (limited to 'src/libs/installer/downloadfiletask_p.h')
-rw-r--r--src/libs/installer/downloadfiletask_p.h28
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