[Pkg-owncloud-commits] [owncloud-client] 85/175: TransmissionChecksumming: Remove SyncFileItem dependency.
Sandro Knauß
hefee-guest at moszumanska.debian.org
Sat Aug 8 10:36:29 UTC 2015
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to branch master
in repository owncloud-client.
commit 8f277e46d6922839406118d645a6ccec47054353
Author: Klaas Freitag <freitag at owncloud.com>
Date: Thu May 21 15:51:48 2015 +0200
TransmissionChecksumming: Remove SyncFileItem dependency.
---
src/libsync/propagatedownload.cpp | 2 +-
src/libsync/propagateupload.cpp | 8 ++++---
src/libsync/propagateupload.h | 2 +-
src/libsync/transmissionchecksumvalidator.cpp | 31 ++++++++++++---------------
src/libsync/transmissionchecksumvalidator.h | 8 +++----
test/testtranschecksumvalidator.h | 29 +++++++++++++------------
6 files changed, 40 insertions(+), 40 deletions(-)
diff --git a/src/libsync/propagatedownload.cpp b/src/libsync/propagatedownload.cpp
index 76fa59c..58ba5f6 100644
--- a/src/libsync/propagatedownload.cpp
+++ b/src/libsync/propagatedownload.cpp
@@ -490,7 +490,7 @@ void PropagateDownloadFileQNAM::slotGetFinished()
// will also emit the validated() signal to continue the flow in slot downloadFinished()
// as this is (still) also correct.
TransmissionChecksumValidator *validator = new TransmissionChecksumValidator(_tmpFile.fileName(), this);
- connect(validator, SIGNAL(validated()), this, SLOT(downloadFinished()));
+ connect(validator, SIGNAL(validated(QByteArray)), this, SLOT(downloadFinished()));
connect(validator, SIGNAL(validationFailed(QString)), this, SLOT(slotChecksumFail(QString)));
validator->downloadValidation(job->reply()->rawHeader(checkSumHeaderC));
diff --git a/src/libsync/propagateupload.cpp b/src/libsync/propagateupload.cpp
index dfbba20..12e6c38 100644
--- a/src/libsync/propagateupload.cpp
+++ b/src/libsync/propagateupload.cpp
@@ -211,14 +211,16 @@ void PropagateUploadFileQNAM::start()
// in any case, the validator will emit signal startUpload to let the flow
// continue in slotStartUpload here.
TransmissionChecksumValidator *validator = new TransmissionChecksumValidator(filePath, this);
- connect(validator, SIGNAL(validated()), this, SLOT(slotStartUpload()));
- validator->uploadValidation( &_item );
+ connect(validator, SIGNAL(validated(QByteArray)), this, SLOT(slotStartUpload(QByteArray)));
+ validator->uploadValidation();
}
-void PropagateUploadFileQNAM::slotStartUpload()
+void PropagateUploadFileQNAM::slotStartUpload(const QByteArray& checksum)
{
const QString fullFilePath(_propagator->getFilePath(_item._file));
+ _item._checksum = checksum;
+
if (!FileSystem::fileExists(fullFilePath)) {
done(SyncFileItem::SoftError, tr("File Removed"));
return;
diff --git a/src/libsync/propagateupload.h b/src/libsync/propagateupload.h
index 3746ff4..2a34faa 100644
--- a/src/libsync/propagateupload.h
+++ b/src/libsync/propagateupload.h
@@ -183,7 +183,7 @@ private slots:
void startNextChunk();
void finalize(const SyncFileItem&);
void slotJobDestroyed(QObject *job);
- void slotStartUpload();
+ void slotStartUpload(const QByteArray &checksum);
private:
void startPollJob(const QString& path);
diff --git a/src/libsync/transmissionchecksumvalidator.cpp b/src/libsync/transmissionchecksumvalidator.cpp
index 32a5dc8..34b57dd 100644
--- a/src/libsync/transmissionchecksumvalidator.cpp
+++ b/src/libsync/transmissionchecksumvalidator.cpp
@@ -45,39 +45,38 @@ QString TransmissionChecksumValidator::checksumType() const
return checksumType;
}
-void TransmissionChecksumValidator::uploadValidation( SyncFileItem *item )
+void TransmissionChecksumValidator::uploadValidation()
{
const QString csType = checksumType();
- if( csType.isEmpty() || !item ) {
+ if( csType.isEmpty() ) {
// if there is no checksum defined, continue to upload
- emit validated();
+ emit validated(QByteArray());
} else {
- _item = item;
// Calculate the checksum in a different thread first.
connect( &_watcher, SIGNAL(finished()),
this, SLOT(slotUploadChecksumCalculated()));
if( csType == checkSumMD5C ) {
- item->_checksum = checkSumMD5C;
- item->_checksum += ":";
+ _checksumHeader = checkSumMD5C;
+ _checksumHeader += ":";
_watcher.setFuture(QtConcurrent::run(FileSystem::calcMd5, _filePath));
} else if( csType == checkSumSHA1C ) {
- item->_checksum = checkSumSHA1C;
- item->_checksum += ":";
+ _checksumHeader = checkSumSHA1C;
+ _checksumHeader += ":";
_watcher.setFuture(QtConcurrent::run( FileSystem::calcSha1, _filePath));
}
#ifdef ZLIB_FOUND
else if( csType == checkSumAdlerC) {
- item->_checksum = checkSumAdlerC;
- item->_checksum += ":";
+ _checksumHeader = checkSumAdlerC;
+ _checksumHeader += ":";
_watcher.setFuture(QtConcurrent::run(FileSystem::calcAdler32, _filePath));
}
#endif
else {
// for an unknown checksum, continue to upload
- emit validated();
+ emit validated(QByteArray());
}
}
}
@@ -87,12 +86,10 @@ void TransmissionChecksumValidator::slotUploadChecksumCalculated( )
QByteArray checksum = _watcher.future().result();
if( !checksum.isEmpty() ) {
- _item->_checksum.append(checksum);
- } else {
- _item->_checksum.clear();
+ checksum.prepend( _checksumHeader );
}
- emit validated();
+ emit validated(checksum);
}
@@ -104,7 +101,7 @@ void TransmissionChecksumValidator::downloadValidation( const QByteArray& checks
// for empty checksum type, everything is valid.
if( csType.isEmpty() ) {
- emit validated();
+ emit validated(QByteArray());
return;
}
@@ -146,7 +143,7 @@ void TransmissionChecksumValidator::slotDownloadChecksumCalculated()
emit validationFailed(tr("The downloaded file does not match the checksum, it will be resumed."));
} else {
// qDebug() << "Checksum checked and matching: " << _expectedHash;
- emit validated();
+ emit validated(hash);
}
}
diff --git a/src/libsync/transmissionchecksumvalidator.h b/src/libsync/transmissionchecksumvalidator.h
index 81f2727..24a289d 100644
--- a/src/libsync/transmissionchecksumvalidator.h
+++ b/src/libsync/transmissionchecksumvalidator.h
@@ -19,7 +19,6 @@
#include <QFutureWatcher>
namespace OCC {
-class SyncFileItem;
class TransmissionChecksumValidator : public QObject
{
@@ -36,7 +35,7 @@ public:
* the object will emit the signal validated(). The item->_checksum is than either
* set to a proper value or empty.
*/
- void uploadValidation( SyncFileItem *item );
+ void uploadValidation();
/**
* method to verify the checksum coming with requests in a checksum header. The required
@@ -54,7 +53,7 @@ public:
QString checksumType() const;
signals:
- void validated();
+ void validated(const QByteArray& checksum);
void validationFailed( const QString& errMsg );
private slots:
@@ -64,8 +63,9 @@ private slots:
private:
QByteArray _checksumType;
QByteArray _expectedHash;
+ QByteArray _checksumHeader;
+
QString _filePath;
- SyncFileItem *_item;
// watcher for the checksum calculation thread
QFutureWatcher<QByteArray> _watcher;
diff --git a/test/testtranschecksumvalidator.h b/test/testtranschecksumvalidator.h
index 58aa52d..5f0ac77 100644
--- a/test/testtranschecksumvalidator.h
+++ b/test/testtranschecksumvalidator.h
@@ -13,7 +13,6 @@
#include "transmissionchecksumvalidator.h"
#include "networkjobs.h"
-#include "syncfileitem.h"
#include "utility.h"
#include "filesystem.h"
#include "propagatorjobs.h"
@@ -28,7 +27,6 @@ using namespace OCC;
QString _root;
QString _testfile;
QString _expectedError;
- SyncFileItem *_item;
QEventLoop _loop;
QByteArray _expected;
bool _successDown;
@@ -42,9 +40,9 @@ using namespace OCC;
public slots:
- void slotUpValidated() {
- qDebug() << "Checksum: " << _item->_checksum;
- QVERIFY(_expected == _item->_checksum );
+ void slotUpValidated(const QByteArray& checksum) {
+ qDebug() << "Checksum: " << checksum;
+ QVERIFY(_expected == checksum );
}
void slotDownValidated() {
@@ -67,7 +65,6 @@ using namespace OCC;
_testfile = _root+"/csFile";
Utility::writeRandomFile( _testfile);
- _item = new SyncFileItem;
}
void testUploadChecksummingAdler() {
@@ -75,47 +72,50 @@ using namespace OCC;
TransmissionChecksumValidator *vali = new TransmissionChecksumValidator(_testfile, this);
vali->setChecksumType("Adler32");
- connect(vali, SIGNAL(validated()), this, SLOT(slotUpValidated()));
+ connect(vali, SIGNAL(validated(QByteArray)), this, SLOT(slotUpValidated(QByteArray)));
QString testfile = _testfile;
_expected = "Adler32:"+FileSystem::calcAdler32( testfile );
qDebug() << "XX Expected Checksum: " << _expected;
- vali->uploadValidation(_item);
+ vali->uploadValidation();
usleep(5000);
_loop.processEvents();
+ delete vali;
}
void testUploadChecksummingMd5() {
TransmissionChecksumValidator *vali = new TransmissionChecksumValidator(_testfile, this);
vali->setChecksumType( OCC::checkSumMD5C );
- connect(vali, SIGNAL(validated()), this, SLOT(slotUpValidated()));
+ connect(vali, SIGNAL(validated(QByteArray)), this, SLOT(slotUpValidated(QByteArray)));
_expected = checkSumMD5C;
_expected.append(":"+FileSystem::calcMd5( _testfile ));
- vali->uploadValidation(_item);
+ vali->uploadValidation();
usleep(2000);
_loop.processEvents();
+ delete vali;
}
void testUploadChecksummingSha1() {
TransmissionChecksumValidator *vali = new TransmissionChecksumValidator(_testfile, this);
vali->setChecksumType( OCC::checkSumSHA1C );
- connect(vali, SIGNAL(validated()), this, SLOT(slotUpValidated()));
+ connect(vali, SIGNAL(validated(QByteArray)), this, SLOT(slotUpValidated(QByteArray)));
_expected = checkSumSHA1C;
_expected.append(":"+FileSystem::calcSha1( _testfile ));
- vali->uploadValidation(_item);
+ vali->uploadValidation();
usleep(2000);
_loop.processEvents();
+ delete vali;
}
void testDownloadChecksummingAdler() {
@@ -126,7 +126,8 @@ using namespace OCC;
_successDown = false;
TransmissionChecksumValidator *vali = new TransmissionChecksumValidator(_testfile, this);
- connect(vali, SIGNAL(validated()), this, SLOT(slotDownValidated()));
+ vali->setChecksumType("Adler32");
+ connect(vali, SIGNAL(validated(QByteArray)), this, SLOT(slotDownValidated()));
connect(vali, SIGNAL(validationFailed(QString)), this, SLOT(slotDownError(QString)));
vali->downloadValidation(adler);
@@ -149,10 +150,10 @@ using namespace OCC;
_loop.processEvents();
QVERIFY(_errorSeen);
+ delete vali;
}
void cleanupTestCase() {
- delete _item;
}
};
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list