NOISSUE Various changes from multiauth that are unrelated to it

This commit is contained in:
Jan Dalheimer
2015-05-28 19:38:29 +02:00
committed by Petr Mrázek
parent 161dc66c2c
commit 3a8b238052
65 changed files with 2661 additions and 333 deletions

View File

@ -20,6 +20,29 @@
#include <QCryptographicHash>
#include <QSaveFile>
class INetworkValidator
{
public:
virtual ~INetworkValidator() {}
virtual void validate(const QByteArray &data) = 0;
};
class JsonValidator : public INetworkValidator
{
public:
void validate(const QByteArray &data) override;
};
class MD5HashValidator : public INetworkValidator
{
public:
explicit MD5HashValidator(const QByteArray &expected)
: m_expected(expected) {}
void validate(const QByteArray &data) override;
private:
QByteArray m_expected;
};
typedef std::shared_ptr<class CacheDownload> CacheDownloadPtr;
class CacheDownload : public NetAction
{
@ -33,6 +56,8 @@ private:
/// the hash-as-you-download
QCryptographicHash md5sum;
INetworkValidator *m_validator = nullptr;
bool wroteAnyData = false;
public:
@ -46,6 +71,10 @@ public:
{
return m_target_path;
}
void setValidator(INetworkValidator *validator)
{
m_validator = validator;
}
protected
slots:
virtual void downloadProgress(qint64 bytesReceived, qint64 bytesTotal);