Mercurial > dedupe
diff HuffmanSet.cpp @ 49:f8d0ea827db3
Use BitArray.
| author | Tom Fredrik Blenning Klaussen <bfg@blenning.no> |
|---|---|
| date | Mon, 10 Sep 2012 23:59:46 +0200 |
| parents | f711ddb56ae7 |
| children | 19b2a2d98788 |
line wrap: on
line diff
--- a/HuffmanSet.cpp Mon Sep 10 23:59:25 2012 +0200 +++ b/HuffmanSet.cpp Mon Sep 10 23:59:46 2012 +0200 @@ -1,5 +1,8 @@ #include "HuffmanString.hpp" +#include "FastBitDecoder.hpp" +#include "BitDecoder.hpp" + #include "Exception/InvalidDataException.hpp" #include "Exception/NoSuchValueException.hpp" @@ -48,14 +51,14 @@ return retVal; } -QString HuffmanSet::decode(const QBitArray& bits) const +QString HuffmanSet::decode(const BitArray& bits) const { return lut->decode(bits); } -QBitArray HuffmanSet::encode(const QString& string, const QMap<QString, QBitArray>& encoder) +BitArray HuffmanSet::encode(const QString& string, const QMap<QString, BitArray>& encoder) { - QBitArray retVal; + BitArray retVal; QStringList c = chunks(string); foreach(const QString& fragment, c) { if (encoder.contains(fragment)) @@ -98,6 +101,10 @@ } numInserts = 0; delete lut; + /* + lut = new FastBitDecoder(encoder); + delete newLut; + */ lut = newLut; newStrings.clear(); } @@ -120,7 +127,7 @@ key_t key = hash(str); if (!contains(key)) { try { - QBitArray bits = encode(str, encoder); + BitArray bits = encode(str, encoder); map.insert(key, bits); } catch (InvalidDataException& e) {
