summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/utils.cpp
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@nokia.com>2012-09-28 14:46:17 +0200
committerKarsten Heimrich <karsten.heimrich@digia.com>2012-10-01 12:13:06 +0200
commitc8cc7d5b521c29e0968ce11dd9c63de0ce260c49 (patch)
treef5d90f7a7a8daa86848ff1ede9ebc91abbce52aa /src/libs/installer/utils.cpp
parenta1b2010ce87bd878f78acf01a5677875f34254ef (diff)
Merge "buffered" calculateHash function and reuse.
Change-Id: I294038888bd47a139b8c3df68e298e66e5ec2202 Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Diffstat (limited to 'src/libs/installer/utils.cpp')
-rw-r--r--src/libs/installer/utils.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/libs/installer/utils.cpp b/src/libs/installer/utils.cpp
index 4bd93430f..ffe705ba4 100644
--- a/src/libs/installer/utils.cpp
+++ b/src/libs/installer/utils.cpp
@@ -103,13 +103,11 @@ std::ostream &QInstaller::operator<<(std::ostream &os, const QString &string)
return os << qPrintable(string);
}
-//TODO from kdupdaterfiledownloader.cpp, use that one once merged
QByteArray QInstaller::calculateHash(QIODevice *device, QCryptographicHash::Algorithm algo)
{
Q_ASSERT(device);
QCryptographicHash hash(algo);
- QByteArray buffer;
- buffer.resize(512 * 1024);
+ static QByteArray buffer(1024 * 1024, '\0');
while (true) {
const qint64 numRead = device->read(buffer.data(), buffer.size());
if (numRead <= 0)
@@ -119,6 +117,13 @@ QByteArray QInstaller::calculateHash(QIODevice *device, QCryptographicHash::Algo
return QByteArray(); // never reached
}
+QByteArray QInstaller::calculateHash(const QString &path, QCryptographicHash::Algorithm algo)
+{
+ QFile file(path);
+ if (!file.open(QIODevice::ReadOnly))
+ return QByteArray();
+ return calculateHash(&file, algo);
+}
QString QInstaller::replaceVariables(const QHash<QString, QString> &vars, const QString &str)
{