Mercurial > dedupe
view CachedEditDistance.hpp @ 104:6bc013d5788b
Avoid unnecessary updates.
Fix problems with wrong subset being selected for update with prefix.
Fix some problems with to much verbosity in debug statements.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Sat, 15 Feb 2014 13:34:10 +0100 |
| parents | 9744ec195be3 |
| children |
line wrap: on
line source
#ifndef CACHEDEDITDISTANCE_HPP #define CACHEDEDITDISTANCE_HPP #include "DBCache.hpp" #include "EditDistance.hpp" 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 CachedEditDistance { protected: typedef DBCache<OrderedPair<UniqueString>, int, true> cacheType; public: static int Compute(QString a, QString b, bool removeDiacritics = false); static void removeDiacriticsNoCopy(QString& in) { EditDistance::removeDiacriticsNoCopy(in); } static QString removeDiacritics(const QString& in) { return EditDistance::removeDiacritics(in); } static cacheType* cache; }; #endif //CACHEDEDITDISTANCE_HPP
