Mercurial > dedupe
changeset 64:b9515dc35fe4
Make sure no file has greater linewidth than 80.
| author | Tom Fredrik Blenning Klaussen <bfg@blenning.no> |
|---|---|
| date | Fri, 14 Sep 2012 22:50:45 +0200 |
| parents | dd086ec3220d |
| children | bc55cbd827bf |
| files | BitArray.cpp BitDecoder.cpp BitDecoder.hpp CMakeLists.txt ConfigurationProcessing.cpp DBCache.hpp DataController.cpp FastBitDecoder.hpp FileDBLink.cpp FileDBLink.hpp HuffmanSet.cpp MemoryDBLink.cpp MemoryDBLink.hpp OrderedPair.hpp RBTree.hpp SqliteDBLink.cpp SqliteDBLink.hpp TestEditDistance.cpp UniqueString.hpp |
| diffstat | 19 files changed, 237 insertions(+), 131 deletions(-) [+] |
line wrap: on
line diff
--- a/BitArray.cpp Fri Sep 14 21:10:03 2012 +0200 +++ b/BitArray.cpp Fri Sep 14 22:50:45 2012 +0200 @@ -5,7 +5,8 @@ delete bits; } -BitArray::BitArray(const BitArray& other) : size_(other.size()), bits(new uchar[NUMCHARS(size_)]) +BitArray::BitArray(const BitArray& other) + : size_(other.size()), bits(new uchar[NUMCHARS(size_)]) { memcpy(bits, other.bits, NUMCHARS(size_)); }
--- a/BitDecoder.cpp Fri Sep 14 21:10:03 2012 +0200 +++ b/BitDecoder.cpp Fri Sep 14 22:50:45 2012 +0200 @@ -2,7 +2,8 @@ #include "Exception/InvalidDataException.hpp" -BitDecoder::BitDecoder(BitDecoder* low_in, BitDecoder* high_in) : low(low_in), high(high_in) +BitDecoder::BitDecoder(BitDecoder* low_in, BitDecoder* high_in) + : low(low_in), high(high_in) { } @@ -26,21 +27,6 @@ return new BitDecoder(low, high); } -/* -QBitArray BitDecoder::unite(const QBitArray& first, const QBitArray& second) -{ - QBitArray result(first.size() + second.size()); - int n = first.size(); - for (int i = 0; i < n; ++i) { - result[i] = first[i]; - } - for (int i = 0; i < second.size(); ++i) { - result[n + i] = second[i]; - } - return result; -} -*/ - QMap<QString, BitArray> BitDecoder::createEncoder() const { QMap<QString, BitArray> retVal;
--- a/BitDecoder.hpp Fri Sep 14 21:10:03 2012 +0200 +++ b/BitDecoder.hpp Fri Sep 14 22:50:45 2012 +0200 @@ -19,7 +19,8 @@ { //Data is always stored in a leaf node. if (high) { - return (bits.testBit(offset) ? high : low)->decode(resString, bits, offset + 1) + 1; + return (bits.testBit(offset) ? high : low)-> + decode(resString, bits, offset + 1) + 1; } else { resString.append(_data); @@ -38,7 +39,8 @@ uint n = bits.size(); //Just a qualified overestimate guess on what we will need. combined.reserve(n/4); - for (uint decodedBits = 0; decodedBits < n; decodedBits += decode(combined, bits, decodedBits) - 1); + for (uint decodedBits = 0; decodedBits < n; + decodedBits += decode(combined, bits, decodedBits) - 1); combined.squeeze(); return combined; }
--- a/CMakeLists.txt Fri Sep 14 21:10:03 2012 +0200 +++ b/CMakeLists.txt Fri Sep 14 22:50:45 2012 +0200 @@ -88,10 +88,24 @@ #SET(CMAKE_CXX_FLAGS "-g2 -Wall -fno-inline") ADD_EXECUTABLE(DeDupe Apps/DeDupe.cpp ${SOURCES} ${MOC_SOURCES}) -TARGET_LINK_LIBRARIES(DeDupe ${QT_LIBRARIES} ${SQLITE3_LIBRARIES} ${Boost_LIBRARIES}) +TARGET_LINK_LIBRARIES( + DeDupe + ${QT_LIBRARIES} + ${SQLITE3_LIBRARIES} + ${Boost_LIBRARIES} +) -ADD_EXECUTABLE(updateDeDupe Apps/updateDeDupe.cpp ${SOURCES} ${MOC_SOURCES}) -TARGET_LINK_LIBRARIES(updateDeDupe ${QT_LIBRARIES} ${SQLITE3_LIBRARIES} ${Boost_LIBRARIES}) +ADD_EXECUTABLE( + updateDeDupe + Apps/updateDeDupe.cpp + ${SOURCES} ${MOC_SOURCES} +) +TARGET_LINK_LIBRARIES( + updateDeDupe + ${QT_LIBRARIES} + ${SQLITE3_LIBRARIES} + ${Boost_LIBRARIES} +) ENABLE_TESTING() NEW_TEST(TestBitArray)
--- a/ConfigurationProcessing.cpp Fri Sep 14 21:10:03 2012 +0200 +++ b/ConfigurationProcessing.cpp Fri Sep 14 22:50:45 2012 +0200 @@ -5,7 +5,12 @@ QString processSetupVariables(const QString& inString) { QString outString = inString; + QString homeLocation = + QString("%1%2") + .arg(QDesktopServices::storageLocation(QDesktopServices::HomeLocation)) + .arg(QDir::separator()); + outString.replace(QRegExp("^~/"), - QString("%1%2").arg(QDesktopServices::storageLocation(QDesktopServices::HomeLocation)).arg(QDir::separator())); + homeLocation); return outString; }
--- a/DBCache.hpp Fri Sep 14 21:10:03 2012 +0200 +++ b/DBCache.hpp Fri Sep 14 22:50:45 2012 +0200 @@ -29,7 +29,9 @@ if (!db.tables().contains(dictName)) { QString keyFields = SQLGenerator<Key>::createFields("key"); QString valueFields = SQLGenerator<Value>::createFields("value"); - QString createQuery = QString("CREATE TABLE %1(%2, %3);").arg(dictName).arg(keyFields).arg(valueFields); + QString createQuery = + QString("CREATE TABLE %1(%2, %3);") + .arg(dictName).arg(keyFields).arg(valueFields); QSqlQuery query(db); query.exec(createQuery); } @@ -39,7 +41,9 @@ if (memoryMapped) { QString keyFields = SQLGenerator<Key>::fieldName("key"); QString valueFields = SQLGenerator<Value>::fieldName("value"); - QString repopulateQuery = QString("SELECT %1, %2 FROM %3;").arg(keyFields).arg(valueFields).arg(dictName); + QString repopulateQuery = + QString("SELECT %1, %2 FROM %3;") + .arg(keyFields).arg(valueFields).arg(dictName); QSqlQuery query(db); if (!query.exec(repopulateQuery)) { throw SQLException(query); @@ -85,7 +89,9 @@ db = QSqlDatabase::addDatabase("QSQLITE", "dictName"); db.setDatabaseName(dbName); if (!db.open()) - throw IOException(QString("Unable to open SQLite database with path '%1'").arg(dictName)); + throw + IOException(QString("Unable to open SQLite database with path '%1'") + .arg(dictName)); setup(db, dictName); }
--- a/DataController.cpp Fri Sep 14 21:10:03 2012 +0200 +++ b/DataController.cpp Fri Sep 14 22:50:45 2012 +0200 @@ -32,7 +32,8 @@ fs::directory_iterator end_iter; if ( fs::exists(someDir) && fs::is_directory(someDir)) { - for( fs::directory_iterator dir_iter(someDir) ; dir_iter != end_iter ; ++dir_iter) { + for( fs::directory_iterator dir_iter(someDir) ; + dir_iter != end_iter ; ++dir_iter) { if (fs::is_directory(dir_iter->status()) ) { findFiles(QString::fromStdWString(dir_iter->path().wstring()), list); } @@ -82,7 +83,8 @@ bar->setMaximum(progressMax); bar->show(); - connect(this, SIGNAL(populateProgress(int)), bar.get(), SLOT(setValue(int))); + connect(this, SIGNAL(populateProgress(int)), + bar.get(), SLOT(setValue(int))); } int n = 0; @@ -95,7 +97,8 @@ dblink.deleteFileFromDB(filename); } catch (const IOException& e) { - //FIXME: We have some strange errors, avoid them by ignoring them for now + //FIXME: We have some strange errors, avoid them by ignoring + //them for now dblink.deleteFileFromDB(filename); } catch (Exception& e) { @@ -135,8 +138,10 @@ void DataController::populate() { - populate(nameFilter->isChecked(), sizeFilter->isChecked(), mtimeFilter->isChecked(), - checksumFilter->isChecked(), (100 - editCutoffSpin->value()) * .01); + populate(nameFilter->isChecked(), sizeFilter->isChecked(), + mtimeFilter->isChecked(), + checksumFilter->isChecked(), + (100 - editCutoffSpin->value()) * .01); } void DataController::populate(bool showNameDups, bool showSizeDups, @@ -145,7 +150,8 @@ { tw->clear(); - const QList<QSharedPointer<FileDBLink::DBInfo> > elems = dblink->values(dir.path()); + const QList<QSharedPointer<FileDBLink::DBInfo> > elems = + dblink->values(dir.path()); QProgressBar bar; @@ -155,7 +161,8 @@ bar.setMaximum(elems.size()); bar.show(); - connect(this, SIGNAL(populateProgress(int)), &bar, SLOT(setValue(int))); + connect(this, SIGNAL(populateProgress(int)), + &bar, SLOT(setValue(int))); int n = 0; @@ -187,7 +194,8 @@ if (showNameDups) { QTreeWidgetItem* topLevelItem = 0; - foreach(QSharedPointer<FileDBLink::DBInfo> dup, nameLUP.values(line->name())) { + foreach(QSharedPointer<FileDBLink::DBInfo> dup, + nameLUP.values(line->name())) { if(dup != line) { if (!topLevelItem) { topLevelItem = new QTreeWidgetItem(); @@ -203,7 +211,8 @@ if (showSizeDups) { QTreeWidgetItem* topLevelItem = 0; - foreach(QSharedPointer<FileDBLink::DBInfo> dup, sizeLUP.values(line->size())) { + foreach(QSharedPointer<FileDBLink::DBInfo> dup, + sizeLUP.values(line->size())) { if(dup != line ) { if (!topLevelItem) { topLevelItem = new QTreeWidgetItem(); @@ -219,7 +228,8 @@ if (showMTimeDups) { QTreeWidgetItem* topLevelItem = 0; - foreach(QSharedPointer<FileDBLink::DBInfo> dup, mtimeLUP.values(line->mtime())) { + foreach(QSharedPointer<FileDBLink::DBInfo> dup, + mtimeLUP.values(line->mtime())) { if(dup != line ) { if (!topLevelItem) { topLevelItem = new QTreeWidgetItem(); @@ -235,7 +245,8 @@ if (showCheckSumDups) { QTreeWidgetItem* topLevelItem = 0; - foreach(QSharedPointer<FileDBLink::DBInfo> dup, checksumLUP.values(line->checksum())) { + foreach(QSharedPointer<FileDBLink::DBInfo> dup, + checksumLUP.values(line->checksum())) { if(dup != line) { if (!topLevelItem) { topLevelItem = new QTreeWidgetItem(); @@ -361,7 +372,8 @@ editCutoffSpin->setValue(0); editCutoffSpin->setSingleStep(10); editCutoffSpin->setSuffix("%"); - connect(editCutoffSpin, SIGNAL(valueChanged(int)), this, SLOT(delayPopulate())); + connect(editCutoffSpin, SIGNAL(valueChanged(int)), + this, SLOT(delayPopulate())); filterBar->addWidget(widget); mw->addToolBar(filterBar); @@ -418,7 +430,8 @@ QString path = contextMenuItem->data(0, 32).toString(); QMessageBox::StandardButton button = QMessageBox::question(tw, "Confirm delete", - QString("Do you really want to delete \"%1\"?").arg(path), + QString("Do you really want to delete \"%1\"?") + .arg(path), QMessageBox::Cancel | QMessageBox::Ok, QMessageBox::Cancel); if (button == QMessageBox::Ok) { @@ -428,7 +441,9 @@ populate(); } else { - QMessageBox::warning(tw, "Delete failed", QString("Could not delete \"%1\"?").arg(file.fileName())); + QMessageBox::warning(tw, "Delete failed", + QString("Could not delete \"%1\"?") + .arg(file.fileName())); } } } @@ -440,13 +455,15 @@ QDesktopServices::openUrl(url); } -void DataController::setup(const QString& dbpath_in, const QString& searchPath_in, bool showGUI) +void DataController::setup(const QString& dbpath_in, + const QString& searchPath_in, bool showGUI) { this->showGUI = showGUI; contextMenu = 0; - connect(this, SIGNAL(populateProgress(int)), this, SLOT(progressUpdate(int))); + connect(this, SIGNAL(populateProgress(int)), + this, SLOT(progressUpdate(int))); QString dbpath; if (dbpath_in.size() > 0) {
--- a/FastBitDecoder.hpp Fri Sep 14 21:10:03 2012 +0200 +++ b/FastBitDecoder.hpp Fri Sep 14 22:50:45 2012 +0200 @@ -12,7 +12,8 @@ unsigned char numBits[N]; QString* data[N]; - static unsigned char getPaddedChar(const BitArray& bitArray, uint offset = 0); + static unsigned char getPaddedChar(const BitArray& bitArray, + uint offset = 0); static BitArray removeFirst(const BitArray& bits); void fill(); @@ -33,7 +34,8 @@ uint n = bits.size(); //Just a qualified overestimate guess on what we will need. combined.reserve(n/4); - for (uint decodedBits = 0; decodedBits < n; decodedBits += decode(combined, bits, decodedBits)); + for (uint decodedBits = 0; decodedBits < n; + decodedBits += decode(combined, bits, decodedBits)); combined.squeeze(); return combined; }
--- a/FileDBLink.cpp Fri Sep 14 21:10:03 2012 +0200 +++ b/FileDBLink.cpp Fri Sep 14 22:50:45 2012 +0200 @@ -28,10 +28,12 @@ void FileDBLink::addFile(const QFileInfo& fileinfo) { - addFile(fileinfo.absoluteFilePath(), fileinfo.size(), fileinfo.lastModified()); + addFile(fileinfo.absoluteFilePath(), fileinfo.size(), + fileinfo.lastModified()); } -QByteArray FileDBLink::computeHash(const QString& path, QCryptographicHash::Algorithm algorithm) +QByteArray FileDBLink::computeHash(const QString& path, + QCryptographicHash::Algorithm algorithm) { const static uint buffersize = 32768; QCryptographicHash hash(algorithm); @@ -55,54 +57,59 @@ } -void FileDBLink::addFile(const QString& path, qint64 size, const QDateTime& lastModified) +void FileDBLink::addFile(const QString& path, qint64 size, + const QDateTime& lastModified) { addFile(path, size, lastModified, computeHash(path)); } void FileDBLink::updateFile(const QFileInfo& fileinfo) { - updateFile(fileinfo.absoluteFilePath(), fileinfo.size(), fileinfo.lastModified()); + updateFile(fileinfo.absoluteFilePath(), fileinfo.size(), + fileinfo.lastModified()); } -void FileDBLink::updateFile(const QString& path, qint64 size, const QDateTime& lastModified) +void FileDBLink::updateFile(const QString& path, qint64 size, + const QDateTime& lastModified) { updateFile(path, size, lastModified, computeHash(path)); } -const QList<QSharedPointer<FileDBLink::DBInfo> > FileDBLink::sortOn(const QString& prefix, SORTORDER order, bool extended) +const QList<FileDBLink::dbinf_ptr_t > +FileDBLink::sortOn(const QString& prefix, SORTORDER order, bool extended) { - QList<QSharedPointer<DBInfo> > list = (extended) ? computedValues(prefix) : values(prefix); + QList<dbinf_ptr_t > list = + (extended) ? computedValues(prefix) : values(prefix); switch (order) { case PATH: { - QList<QSharedPointer<FileDBLink::DBInfo> > oList; - foreach(QSharedPointer<DBInfo> info, list) { + QList<FileDBLink::dbinf_ptr_t > oList; + foreach(dbinf_ptr_t info, list) { oList.push_back(info); } return oList; } case SIZE: { - QMultiMap<quint64, QSharedPointer<DBInfo> > oList; - foreach(QSharedPointer<DBInfo> info, list) { + QMultiMap<quint64, dbinf_ptr_t > oList; + foreach(dbinf_ptr_t info, list) { oList.insert(info->size(), info); } return oList.values(); } case MTIME: { - QMultiMap<QDateTime, QSharedPointer<DBInfo> > oList; - foreach(QSharedPointer<DBInfo> info, list) { + QMultiMap<QDateTime, dbinf_ptr_t > oList; + foreach(dbinf_ptr_t info, list) { oList.insert(info->mtime(), info); } return oList.values(); } case CHECKSUM: { - QMultiMap<QByteArray, QSharedPointer<DBInfo> > oList; - foreach(QSharedPointer<DBInfo> info, list) { + QMultiMap<QByteArray, dbinf_ptr_t > oList; + foreach(dbinf_ptr_t info, list) { oList.insert(info->checksum(), info); } return oList.values(); @@ -110,8 +117,8 @@ case EDIT: { assert(extended); - QMultiMap<int, QSharedPointer<DBInfo> > oList; - foreach(QSharedPointer<DBInfo> info, list) { + QMultiMap<int, dbinf_ptr_t > oList; + foreach(dbinf_ptr_t info, list) { QSharedPointer<ExtendedDBInfo> ptr; ptr = info.dynamicCast<ExtendedDBInfo>(); oList.insert(ptr->editDistance(), info); @@ -123,13 +130,14 @@ abort(); } -QSharedPointer<FileDBLink::DBInfo> FileDBLink::computedValue(const QSharedPointer<DBInfo>& info, - const QList<QSharedPointer<DBInfo> >& entries) +FileDBLink::dbinf_ptr_t +FileDBLink::computedValue(const dbinf_ptr_t& info, + const QList<dbinf_ptr_t >& entries) { QString p1 = info->name(); int minDist = 100000; QString other; - for (QList<QSharedPointer<DBInfo> >::const_iterator it2 = entries.begin(); + for (QList<dbinf_ptr_t >::const_iterator it2 = entries.begin(); it2 != entries.end(); ++it2) { if (info == *it2) continue; @@ -140,20 +148,25 @@ other = (*it2)->path(); } } - return QSharedPointer<DBInfo>(new ExtendedDBInfo(*info, other, minDist)); + return dbinf_ptr_t(new ExtendedDBInfo(*info, other, minDist)); } -const QList<QSharedPointer<FileDBLink::DBInfo> > FileDBLink::computedValues(const QString& prefix) const +const QList<FileDBLink::dbinf_ptr_t> +FileDBLink::computedValues(const QString& prefix) const { - QList<QSharedPointer<DBInfo> > list; - QList<QSharedPointer<DBInfo> > entries = values(prefix); + QList<dbinf_ptr_t > list; + QList<dbinf_ptr_t > entries = values(prefix); #if 1 - list = QtConcurrent::blockingMapped(entries, boost::bind( &FileDBLink::computedValue, _1, entries)); + list = + QtConcurrent::blockingMapped(entries, + boost::bind( &FileDBLink::computedValue, + _1, + entries)); #else - for (QList<QSharedPointer<DBInfo> >::const_iterator it1 = entries.begin(); + for (QList<dbinf_ptr_t >::const_iterator it1 = entries.begin(); it1 != entries.end(); ++it1) { - QSharedPointer<DBInfo> ext = computedValue(*it1, entries); + dbinf_ptr_t ext = computedValue(*it1, entries); list.push_back(ext); } #endif
--- a/FileDBLink.hpp Fri Sep 14 21:10:03 2012 +0200 +++ b/FileDBLink.hpp Fri Sep 14 22:50:45 2012 +0200 @@ -9,10 +9,11 @@ public: class DBInfo { public: - DBInfo(const QString& path, qint64 size, const QDateTime& mtime, const QByteArray& hash) : path_(path), - size_(size), - mtime_(mtime), - hash_(hash) + DBInfo(const QString& path, qint64 size, + const QDateTime& mtime, const QByteArray& hash) : path_(path), + size_(size), + mtime_(mtime), + hash_(hash) {} DBInfo() {} @@ -63,10 +64,21 @@ class ExtendedDBInfo : public DBInfo { public: - ExtendedDBInfo(const DBInfo& dbinfo, const QString& closestEditPath, int editDistance) : DBInfo(dbinfo), closestEditPath_(closestEditPath), editDistance_(editDistance) {} - ExtendedDBInfo() {} + ExtendedDBInfo(const DBInfo& dbinfo, + const QString& closestEditPath, + int editDistance) : + DBInfo(dbinfo), + closestEditPath_(closestEditPath), + editDistance_(editDistance) + { + } + ExtendedDBInfo() + { + } - virtual ~ExtendedDBInfo() {} + virtual ~ExtendedDBInfo() + { + } virtual QString serialize() const { @@ -86,10 +98,15 @@ QString closestEditPath_; int editDistance_; }; + typedef QSharedPointer<DBInfo> dbinf_ptr_t; - static QSharedPointer<DBInfo> computedValue(const QSharedPointer<DBInfo>& info, const QList<QSharedPointer<DBInfo> >&); + static dbinf_ptr_t + computedValue(const dbinf_ptr_t& info, + const QList<dbinf_ptr_t >&); - static QByteArray computeHash(const QString& path, QCryptographicHash::Algorithm = QCryptographicHash::Sha1); + static QByteArray + computeHash(const QString& path, + QCryptographicHash::Algorithm = QCryptographicHash::Sha1); public: enum DBStatus { NONE = 0, MTIME_DIFFERENT, SAME}; @@ -98,26 +115,34 @@ void updateIfModified(const QString& path); - virtual void addFile(const QString& path, qint64 size, const QDateTime& dtime, const QByteArray& hash) = 0; - virtual void keepOnlyFromPrefix(const QString& prefix, const QStringList& files) = 0; + virtual void addFile(const QString& path, qint64 size, + const QDateTime& dtime, const QByteArray& hash) = 0; + virtual void keepOnlyFromPrefix(const QString& prefix, + const QStringList& files) = 0; virtual void deleteFileFromDB(const QString& path) = 0; void addFile(const QString& path, qint64 size, const QDateTime& dtime); void addFile(const QFileInfo& fileinfo); - virtual void updateFile(const QString& path, qint64 size, const QDateTime& dtime, const QByteArray& hash) = 0; + virtual void updateFile(const QString& path, qint64 size, + const QDateTime& dtime, const QByteArray& hash) = 0; void updateFile(const QString& path, qint64 size, const QDateTime& dtime); void updateFile(const QFileInfo& fileinfo); virtual bool exists(const QString& path) = 0; - virtual DBStatus existsWithMtime(const QString& path, const QDateTime& mtime) = 0; + virtual DBStatus existsWithMtime(const QString& path, + const QDateTime& mtime) = 0; - virtual const QList<QSharedPointer<DBInfo> > values(const QString& prefix = QString() ) const = 0; - virtual const QList<QSharedPointer<DBInfo> > computedValues(const QString& prefix = QString() ) const; + virtual const QList<dbinf_ptr_t> + values(const QString& prefix = QString() ) const = 0; + + virtual const QList<dbinf_ptr_t> + computedValues(const QString& prefix = QString() ) const; enum SORTORDER { PATH, SIZE, MTIME, CHECKSUM, EDIT }; - virtual const QList<QSharedPointer<DBInfo> > sortOn(const QString& prefix, SORTORDER order, bool extended = false); + virtual const QList<dbinf_ptr_t> + sortOn(const QString& prefix, SORTORDER order, bool extended = false); }; #endif //FILEDBLINK
--- a/HuffmanSet.cpp Fri Sep 14 21:10:03 2012 +0200 +++ b/HuffmanSet.cpp Fri Sep 14 22:50:45 2012 +0200 @@ -67,7 +67,8 @@ return lut->decode(bits); } -BitArray HuffmanSet::encode(const QString& string, const QMap<QString, BitArray>& encoder) +BitArray HuffmanSet::encode(const QString& string, + const QMap<QString, BitArray>& encoder) { BitArray retVal; QStringList c = chunks(string);
--- a/MemoryDBLink.cpp Fri Sep 14 21:10:03 2012 +0200 +++ b/MemoryDBLink.cpp Fri Sep 14 22:50:45 2012 +0200 @@ -2,17 +2,18 @@ #include <QtCore/QStringList> -void MemoryDBLink::addFile(const QString& path, qint64 size, const QDateTime& dtime, const QByteArray& hash) +void MemoryDBLink::addFile(const QString& path, qint64 size, + const QDateTime& dtime, const QByteArray& hash) { addFile(DBInfo(path, size, dtime, hash)); } bool MemoryDBLink::tryAddFile(const DBInfo& dbinfo) { - QMap<QString, QSharedPointer<DBInfo> >::iterator pos; + QMap<QString, dbinf_ptr_t >::iterator pos; pos = entries.find(dbinfo.path()); if (pos == entries.end()) { - entries.insert(dbinfo.path(), QSharedPointer<DBInfo>(new DBInfo(dbinfo))); + entries.insert(dbinfo.path(), dbinf_ptr_t(new DBInfo(dbinfo))); return true; } return false; @@ -29,18 +30,19 @@ QStringList MemoryDBLink::toStringList() { QStringList list; - foreach(QSharedPointer<DBInfo> info, entries) { + foreach(dbinf_ptr_t info, entries) { list << info->serialize(); } return list; } -const QList<QSharedPointer<FileDBLink::DBInfo> > MemoryDBLink::values(const QString& prefix) const +const QList<FileDBLink::dbinf_ptr_t> +MemoryDBLink::values(const QString& prefix) const { if (prefix.size() == 0) return entries.values(); - QList<QSharedPointer<FileDBLink::DBInfo> > list; + QList<FileDBLink::dbinf_ptr_t > list; foreach (QString key, entries.keys()) { if (key.startsWith(prefix)) list << entries[key]; @@ -55,10 +57,11 @@ } -void MemoryDBLink::keepOnlyFromPrefix(const QString& prefix, const QStringList& files) +void MemoryDBLink::keepOnlyFromPrefix(const QString& prefix, + const QStringList& files) { QStringList list; - foreach(QSharedPointer<DBInfo> info, values(prefix)) { + foreach(dbinf_ptr_t info, values(prefix)) { if (!files.contains(info->path())) { list << info->path(); } @@ -68,10 +71,11 @@ } } -FileDBLink::DBStatus MemoryDBLink::existsWithMtime(const QString& path, const QDateTime& mtime) +FileDBLink::DBStatus MemoryDBLink::existsWithMtime(const QString& path, + const QDateTime& mtime) { if (entries.contains(path)) { - QSharedPointer<DBInfo> info = entries[path]; + dbinf_ptr_t info = entries[path]; if (info->mtime() == mtime) return SAME; return MTIME_DIFFERENT; @@ -79,7 +83,8 @@ return NONE; } -void MemoryDBLink::updateFile(const QString& path, qint64 size, const QDateTime& dtime, const QByteArray& hash) +void MemoryDBLink::updateFile(const QString& path, qint64 size, + const QDateTime& dtime, const QByteArray& hash) { updateFile(DBInfo(path, size, dtime, hash)); }
--- a/MemoryDBLink.hpp Fri Sep 14 21:10:03 2012 +0200 +++ b/MemoryDBLink.hpp Fri Sep 14 22:50:45 2012 +0200 @@ -14,12 +14,15 @@ QStringList toStringList(); - virtual void addFile(const QString& path, qint64 size, const QDateTime& dtime, const QByteArray& hash); - virtual void updateFile(const QString& path, qint64 size, const QDateTime& dtime, const QByteArray& hash); + virtual void addFile(const QString& path, qint64 size, + const QDateTime& dtime, const QByteArray& hash); + virtual void updateFile(const QString& path, qint64 size, + const QDateTime& dtime, const QByteArray& hash); DBStatus existsWithMtime(const QString& path, const QDateTime& mtime); - const QList<QSharedPointer<DBInfo> > values(const QString& prefix = QString() ) const; - virtual void keepOnlyFromPrefix(const QString& prefix, const QStringList& files); + const QList<dbinf_ptr_t > values(const QString& prefix = QString() ) const; + virtual void keepOnlyFromPrefix(const QString& prefix, + const QStringList& files); virtual void deleteFileFromDB(const QString& path); @@ -28,7 +31,7 @@ bool tryAddFile(const DBInfo& info); void updateFile(const DBInfo& dbinfo); - QMap<QString, QSharedPointer<DBInfo> > entries; + QMap<QString, dbinf_ptr_t > entries; }; #endif //MEMORYDBLINK_HPP
--- a/OrderedPair.hpp Fri Sep 14 21:10:03 2012 +0200 +++ b/OrderedPair.hpp Fri Sep 14 22:50:45 2012 +0200 @@ -7,7 +7,8 @@ class OrderedPair : public QPair<S, S> { public: - OrderedPair(const S& a, const S& b) : QPair<S, S>(a < b ? a : b, a < b ? b : a) + OrderedPair(const S& a, const S& b) : + QPair<S, S>(a < b ? a : b, a < b ? b : a) { } };
--- a/RBTree.hpp Fri Sep 14 21:10:03 2012 +0200 +++ b/RBTree.hpp Fri Sep 14 22:50:45 2012 +0200 @@ -250,12 +250,14 @@ uint depth() const { - return 1 + std::max((left ? left->depth() : 0), (right ? right->depth() : 0)); + return 1 + std::max((left ? left->depth() : 0), + (right ? right->depth() : 0)); } uint total_depth(uint n) const { - return n + (left ? left->total_depth(n + 1) : 0) + (right ? right->total_depth(n + 1) : 0); + return n + (left ? left->total_depth(n + 1) : 0) + + (right ? right->total_depth(n + 1) : 0); } bool consistent() const
--- a/SqliteDBLink.cpp Fri Sep 14 21:10:03 2012 +0200 +++ b/SqliteDBLink.cpp Fri Sep 14 22:50:45 2012 +0200 @@ -15,10 +15,13 @@ db = QSqlDatabase::addDatabase("QSQLITE", "SqliteDBLink"); db.setDatabaseName(dbPath); if (!db.open()) - throw IOException(QString("Unable to open SQLite database with path '%1'").arg(dbPath)); + throw + IOException(QString("Unable to open SQLite database with path '%1'") + .arg(dbPath)); QSqlQuery query(db); if (!query.exec(QString("SELECT * FROM files;"))) { - query.exec("CREATE TABLE files(path VARCHAR PRIMARY KEY ASC, size INTEGER, mtime TEXT, checksum TEXT);"); + query.exec("CREATE TABLE files(path VARCHAR PRIMARY KEY ASC," + " size INTEGER, mtime TEXT, checksum TEXT);"); } if (!query.exec(QString("SELECT * FROM files;"))) { throw SQLException("No database"); @@ -42,7 +45,8 @@ return query.last(); } -FileDBLink::DBStatus SqliteDBLink::existsWithMtime(const QString& path, const QDateTime& mtime) +FileDBLink::DBStatus SqliteDBLink::existsWithMtime(const QString& path, + const QDateTime& mtime) { QSqlQuery query(db); query.prepare("SELECT mtime FROM files WHERE path = :path;"); @@ -60,7 +64,8 @@ return NONE; } -void SqliteDBLink::addFile(const QString& path, qint64 size, const QDateTime& dtime, const QByteArray& hash) +void SqliteDBLink::addFile(const QString& path, qint64 size, + const QDateTime& dtime, const QByteArray& hash) { addFile(DBInfo(path, size, dtime, hash)); } @@ -82,7 +87,9 @@ return true; } -void SqliteDBLink::updateFile(const QString& path, qint64 size, const QDateTime& dtime, const QByteArray& hash) +void SqliteDBLink::updateFile(const QString& path, + qint64 size, const QDateTime& dtime, + const QByteArray& hash) { updateFile(DBInfo(path, size, dtime, hash)); } @@ -90,7 +97,9 @@ void SqliteDBLink::updateFile(const DBInfo& dbinfo) { QSqlQuery query(db); - query.prepare("UPDATE files SET size=:size, mtime=:mtime, checksum=:checksum WHERE path=:path"); + query.prepare("UPDATE files " + "SET size=:size, mtime=:mtime, checksum=:checksum " + "WHERE path=:path"); query.bindValue(":path", dbinfo.path()); query.bindValue(":size", dbinfo.size()); query.bindValue(":mtime", dbinfo.mtime()); @@ -113,16 +122,17 @@ abort(); QStringList list; /* - foreach(QSharedPointer<DBInfo> info, entries) { + foreach(dbinf_ptr_t info, entries) { list << info->serialize(); } */ return list; } -const QList<QSharedPointer<FileDBLink::DBInfo> > SqliteDBLink::values(const QString& prefix) const +const QList<FileDBLink::dbinf_ptr_t > +SqliteDBLink::values(const QString& prefix) const { - QList<QSharedPointer<FileDBLink::DBInfo> > values; + QList<FileDBLink::dbinf_ptr_t > values; QSqlQuery query(db); @@ -148,8 +158,9 @@ QDateTime mtime = query.value(dateIndex).toDateTime(); QByteArray checksum = query.value(checksumIndex).toByteArray(); - values << QSharedPointer<FileDBLink::DBInfo>(new FileDBLink::DBInfo(path, size, mtime, checksum)); - //qDebug() << path << size << mtime << checksum.toHex(); + values << + FileDBLink::dbinf_ptr_t(new FileDBLink::DBInfo(path, + size, mtime, checksum)); } return values; @@ -166,10 +177,11 @@ } -void SqliteDBLink::keepOnlyFromPrefix(const QString& prefix, const QStringList& files) +void SqliteDBLink::keepOnlyFromPrefix(const QString& prefix, + const QStringList& files) { QStringList list; - foreach(QSharedPointer<DBInfo> info, values(prefix)) { + foreach(dbinf_ptr_t info, values(prefix)) { if (!files.contains(info->path())) { list << info->path(); }
--- a/SqliteDBLink.hpp Fri Sep 14 21:10:03 2012 +0200 +++ b/SqliteDBLink.hpp Fri Sep 14 22:50:45 2012 +0200 @@ -9,14 +9,17 @@ SqliteDBLink(const QString& dbpath); ~SqliteDBLink(); - virtual void addFile(const QString& path, qint64 size, const QDateTime& dtime, const QByteArray& hash); - virtual void updateFile(const QString& path, qint64 size, const QDateTime& dtime, const QByteArray& hash); + virtual void addFile(const QString& path, qint64 size, + const QDateTime& dtime, const QByteArray& hash); + virtual void updateFile(const QString& path, qint64 size, + const QDateTime& dtime, const QByteArray& hash); bool exists(const QString& path); DBStatus existsWithMtime(const QString& path, const QDateTime& mtime); QStringList toStringList(); - const QList<QSharedPointer<DBInfo> > values(const QString& prefix = QString() ) const; - virtual void keepOnlyFromPrefix(const QString& prefix, const QStringList& files); + const QList<dbinf_ptr_t > values(const QString& prefix = QString() ) const; + virtual void keepOnlyFromPrefix(const QString& prefix, + const QStringList& files); virtual void deleteFileFromDB(const QString& path); private:
--- a/TestEditDistance.cpp Fri Sep 14 21:10:03 2012 +0200 +++ b/TestEditDistance.cpp Fri Sep 14 22:50:45 2012 +0200 @@ -5,21 +5,30 @@ { BOOST_REQUIRE_EQUAL(EditDistance::Compute("kitten", "sitting", false), 3); BOOST_REQUIRE_EQUAL(EditDistance::Compute("Saturday", "Sunday", false), 3); - BOOST_REQUIRE_EQUAL(EditDistance::Compute("kitten", "kitten.cpp.o", false), 6); - BOOST_REQUIRE_EQUAL(EditDistance::Compute(QString::fromUtf8("kítten"), "sitting", false), 4); + BOOST_REQUIRE_EQUAL(EditDistance::Compute("kitten", "kitten.cpp.o", false), + 6); + BOOST_REQUIRE_EQUAL(EditDistance::Compute(QString::fromUtf8("kítten"), + "sitting", false), 4); } BOOST_AUTO_TEST_CASE( TestEditDistanceRemoveDiacritics ) { - BOOST_REQUIRE_EQUAL(EditDistance::Compute(QString::fromUtf8("kítten"), "sitting", true), 3); + BOOST_REQUIRE_EQUAL(EditDistance::Compute(QString::fromUtf8("kítten"), + "sitting", true), 3); } BOOST_AUTO_TEST_CASE( TestNormalization ) { BOOST_REQUIRE_EQUAL(EditDistance::removeDiacritics("kitten"), "kitten"); - BOOST_REQUIRE_EQUAL(EditDistance::removeDiacritics(QString::fromUtf8("Händel")), "Handel"); - BOOST_REQUIRE_EQUAL(EditDistance::removeDiacritics(QString::fromUtf8("Hånda")), "Handa"); - BOOST_REQUIRE_EQUAL(EditDistance::removeDiacritics(QString::fromUtf8("Líll")), "Lill"); + BOOST_REQUIRE_EQUAL( + EditDistance::removeDiacritics(QString::fromUtf8("Händel")), + "Handel"); + BOOST_REQUIRE_EQUAL( + EditDistance::removeDiacritics(QString::fromUtf8("Hånda")), + "Handa"); + BOOST_REQUIRE_EQUAL( + EditDistance::removeDiacritics(QString::fromUtf8("Líll")), + "Lill"); } BOOST_AUTO_TEST_CASE( TestStrangeChars )
