summaryrefslogtreecommitdiffstats
path: root/logic/net/CacheDownload.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2013-09-22 14:00:37 +0200
committerPetr Mrázek <peterix@gmail.com>2013-09-22 14:00:37 +0200
commit9d03a9c1e3b9c24a4146adedb2971591d23b037a (patch)
tree6c2a2eb34b93bdd24e7db1f9378b231084c0b27a /logic/net/CacheDownload.cpp
parentceca6959d2a7f258d62ac4f589095b65084706c3 (diff)
downloadMultiMC-9d03a9c1e3b9c24a4146adedb2971591d23b037a.tar
MultiMC-9d03a9c1e3b9c24a4146adedb2971591d23b037a.tar.gz
MultiMC-9d03a9c1e3b9c24a4146adedb2971591d23b037a.tar.lz
MultiMC-9d03a9c1e3b9c24a4146adedb2971591d23b037a.tar.xz
MultiMC-9d03a9c1e3b9c24a4146adedb2971591d23b037a.zip
Cache forge version list (it's huge)
Diffstat (limited to 'logic/net/CacheDownload.cpp')
-rw-r--r--logic/net/CacheDownload.cpp63
1 files changed, 34 insertions, 29 deletions
diff --git a/logic/net/CacheDownload.cpp b/logic/net/CacheDownload.cpp
index c0074574..dc2e0448 100644
--- a/logic/net/CacheDownload.cpp
+++ b/logic/net/CacheDownload.cpp
@@ -7,8 +7,8 @@
#include <QDateTime>
#include <QDebug>
-CacheDownload::CacheDownload (QUrl url, MetaEntryPtr entry )
- :Download(), md5sum(QCryptographicHash::Md5)
+CacheDownload::CacheDownload(QUrl url, MetaEntryPtr entry)
+ : Download(), md5sum(QCryptographicHash::Md5)
{
m_url = url;
m_entry = entry;
@@ -19,38 +19,40 @@ CacheDownload::CacheDownload (QUrl url, MetaEntryPtr entry )
void CacheDownload::start()
{
- if(!m_entry->stale)
+ if (!m_entry->stale)
{
emit succeeded(index_within_job);
return;
}
m_output_file.setFileName(m_target_path);
// if there already is a file and md5 checking is in effect and it can be opened
- if(!ensureFilePathExists(m_target_path))
+ if (!ensureFilePathExists(m_target_path))
{
emit failed(index_within_job);
return;
}
qDebug() << "Downloading " << m_url.toString();
- QNetworkRequest request ( m_url );
- request.setRawHeader(QString("If-None-Match").toLatin1(), m_entry->etag.toLatin1());
-
+ QNetworkRequest request(m_url);
+ request.setRawHeader(QString("If-None-Match").toLatin1(), m_entry->etag.toLatin1());
+
auto worker = MMC->qnam();
- QNetworkReply * rep = worker->get ( request );
-
- m_reply = QSharedPointer<QNetworkReply> ( rep, &QObject::deleteLater );
- connect ( rep, SIGNAL ( downloadProgress ( qint64,qint64 ) ), SLOT ( downloadProgress ( qint64,qint64 ) ) );
- connect ( rep, SIGNAL ( finished() ), SLOT ( downloadFinished() ) );
- connect ( rep, SIGNAL ( error ( QNetworkReply::NetworkError ) ), SLOT ( downloadError ( QNetworkReply::NetworkError ) ) );
- connect ( rep, SIGNAL ( readyRead() ), SLOT ( downloadReadyRead() ) );
+ QNetworkReply *rep = worker->get(request);
+
+ m_reply = QSharedPointer<QNetworkReply>(rep, &QObject::deleteLater);
+ connect(rep, SIGNAL(downloadProgress(qint64, qint64)),
+ SLOT(downloadProgress(qint64, qint64)));
+ connect(rep, SIGNAL(finished()), SLOT(downloadFinished()));
+ connect(rep, SIGNAL(error(QNetworkReply::NetworkError)),
+ SLOT(downloadError(QNetworkReply::NetworkError)));
+ connect(rep, SIGNAL(readyRead()), SLOT(downloadReadyRead()));
}
-void CacheDownload::downloadProgress ( qint64 bytesReceived, qint64 bytesTotal )
+void CacheDownload::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
{
- emit progress (index_within_job, bytesReceived, bytesTotal );
+ emit progress(index_within_job, bytesReceived, bytesTotal);
}
-void CacheDownload::downloadError ( QNetworkReply::NetworkError error )
+void CacheDownload::downloadError(QNetworkReply::NetworkError error)
{
// error happened during download.
// TODO: log the reason why
@@ -59,12 +61,12 @@ void CacheDownload::downloadError ( QNetworkReply::NetworkError error )
void CacheDownload::downloadFinished()
{
// if the download succeeded
- if ( m_status != Job_Failed )
+ if (m_status != Job_Failed)
{
-
+
// nothing went wrong...
m_status = Job_Finished;
- if(m_opened_for_saving)
+ if (m_opened_for_saving)
{
// save the data to the downloadable if we aren't saving to file
m_output_file.close();
@@ -72,20 +74,23 @@ void CacheDownload::downloadFinished()
}
else
{
- if ( m_output_file.open ( QIODevice::ReadOnly ) )
+ if (m_output_file.open(QIODevice::ReadOnly))
{
- m_entry->md5sum = QCryptographicHash::hash ( m_output_file.readAll(), QCryptographicHash::Md5 ).toHex().constData();
+ m_entry->md5sum =
+ QCryptographicHash::hash(m_output_file.readAll(), QCryptographicHash::Md5)
+ .toHex()
+ .constData();
m_output_file.close();
}
}
QFileInfo output_file_info(m_target_path);
-
-
+
m_entry->etag = m_reply->rawHeader("ETag").constData();
- m_entry->last_changed_timestamp = output_file_info.lastModified().toUTC().toMSecsSinceEpoch();
+ m_entry->last_changed_timestamp =
+ output_file_info.lastModified().toUTC().toMSecsSinceEpoch();
m_entry->stale = false;
MMC->metacache()->updateEntry(m_entry);
-
+
m_reply.clear();
emit succeeded(index_within_job);
return;
@@ -103,9 +108,9 @@ void CacheDownload::downloadFinished()
void CacheDownload::downloadReadyRead()
{
- if(!m_opened_for_saving)
+ if (!m_opened_for_saving)
{
- if ( !m_output_file.open ( QIODevice::WriteOnly ) )
+ if (!m_output_file.open(QIODevice::WriteOnly))
{
/*
* Can't open the file... the job failed
@@ -118,5 +123,5 @@ void CacheDownload::downloadReadyRead()
}
QByteArray ba = m_reply->readAll();
md5sum.addData(ba);
- m_output_file.write ( ba );
+ m_output_file.write(ba);
}