diff options
author | Petr Mrázek <peterix@gmail.com> | 2016-05-28 19:54:17 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2016-06-05 23:55:39 +0200 |
commit | a1abbd9e05c80584d831b1d12c27c5f7d731cece (patch) | |
tree | 3324eaf37efa228e07a0e3136952673f0bc3405a /api/logic/minecraft/onesix | |
parent | a750f6e63c783730380c19788deff2acfb3f4836 (diff) | |
download | MultiMC-a1abbd9e05c80584d831b1d12c27c5f7d731cece.tar MultiMC-a1abbd9e05c80584d831b1d12c27c5f7d731cece.tar.gz MultiMC-a1abbd9e05c80584d831b1d12c27c5f7d731cece.tar.lz MultiMC-a1abbd9e05c80584d831b1d12c27c5f7d731cece.tar.xz MultiMC-a1abbd9e05c80584d831b1d12c27c5f7d731cece.zip |
NOISSUE refactor *Download into more, smaller pieces
* Download is now Download.
* Download uses Sink subclasses to process various events.
* Validators can be used to further customize the Sink behaviour.
Diffstat (limited to 'api/logic/minecraft/onesix')
-rw-r--r-- | api/logic/minecraft/onesix/OneSixUpdate.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/api/logic/minecraft/onesix/OneSixUpdate.cpp b/api/logic/minecraft/onesix/OneSixUpdate.cpp index 1c2cd196..d3cd197d 100644 --- a/api/logic/minecraft/onesix/OneSixUpdate.cpp +++ b/api/logic/minecraft/onesix/OneSixUpdate.cpp @@ -31,6 +31,7 @@ #include "minecraft/MinecraftProfile.h" #include "minecraft/Library.h" #include "net/URLConstants.h" +#include "net/ChecksumValidator.h" #include "minecraft/AssetsUtils.h" #include "Exception.h" #include "MMCZip.h" @@ -96,7 +97,13 @@ void OneSixUpdate::assetIndexStart() auto metacache = ENV.metacache(); auto entry = metacache->resolveEntry("asset_indexes", localPath); entry->setStale(true); - job->addNetAction(CacheDownload::make(indexUrl, entry)); + auto hexSha1 = assets->sha1.toLatin1(); + qDebug() << "Asset index SHA1:" << hexSha1; + auto dl = Net::Download::makeCached(indexUrl, entry); + auto rawSha1 = QByteArray::fromHex(assets->sha1.toLatin1()); + dl->addValidator(new Net::ChecksumValidator(QCryptographicHash::Sha1, rawSha1)); + job->addNetAction(dl); + jarlibDownloadJob.reset(job); connect(jarlibDownloadJob.get(), SIGNAL(succeeded()), SLOT(assetIndexFinished())); @@ -180,7 +187,7 @@ void OneSixUpdate::jarlibStart() auto metacache = ENV.metacache(); auto entry = metacache->resolveEntry("versions", localPath); - job->addNetAction(CacheDownload::make(QUrl(urlstr), entry)); + job->addNetAction(Net::Download::makeCached(QUrl(urlstr), entry)); jarlibDownloadJob.reset(job); } @@ -293,7 +300,7 @@ void OneSixUpdate::fmllibsStart() auto entry = metacache->resolveEntry("fmllibs", lib.filename); QString urlString = lib.ours ? URLConstants::FMLLIBS_OUR_BASE_URL + lib.filename : URLConstants::FMLLIBS_FORGE_BASE_URL + lib.filename; - dljob->addNetAction(CacheDownload::make(QUrl(urlString), entry)); + dljob->addNetAction(Net::Download::makeCached(QUrl(urlString), entry)); } connect(dljob, SIGNAL(succeeded()), SLOT(fmllibsFinished())); |