Mercurial > dedupe
view EditDistance.hpp @ 58:7b7e84356b39
Introduce API for fine tuning inserts.
Reduce the amount of rebuilds.
| author | Tom Fredrik Blenning Klaussen <bfg@blenning.no> |
|---|---|
| date | Fri, 14 Sep 2012 00:04:24 +0200 |
| parents | 4c283daa42c7 |
| children | e5fa379d4030 |
line wrap: on
line source
#ifndef EDITDISTANCE_HPP #define EDITDISTANCE_HPP #include "DBCache.hpp" #include "OrderedPair.hpp" #include "ThreadSafeLookup.hpp" #include "UniqueString.hpp" #include <QtCore/QHash> #include <QtCore/QMap> #include <QtCore/QString> template<typename Value> struct InsertRegulator<OrderedPair<UniqueString>, Value > { uint n; void start() { n = 0; HuffmanString::getSet().setAutoRebuild(false); } static void finish() { HuffmanString::getSet().rebuild(); HuffmanString::getSet().setAutoRebuild(true); } void next() { if (++n == 2048) HuffmanString::getSet().rebuild(); } }; class EditDistance { protected: typedef DBCache<OrderedPair<UniqueString>, int, true> cacheType; public: static int Compute(QString a, QString b, bool removeDiacritics = false); static void removeDiacriticsNoCopy(QString& in); static QString removeDiacritics(const QString& in); static cacheType* cache; }; #endif //EDITDISTANCE_HPP
