Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Pimenov <m@maps.me>2015-07-15 17:04:19 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 02:56:23 +0300
commit4b670d0671e6172ad41048ab8048a6a1a508902e (patch)
tree43e9da9292d7f29037b4e2f5ab44731b89cc4874 /coding/compressed_bit_vector.cpp
parentc82b3e927f383a5a77863bd58b74ac1bbdc3675d (diff)
[omim] [coding] BitReader and BitWriter.
Diffstat (limited to 'coding/compressed_bit_vector.cpp')
-rw-r--r--coding/compressed_bit_vector.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/coding/compressed_bit_vector.cpp b/coding/compressed_bit_vector.cpp
index 238809845b..d4dd942ade 100644
--- a/coding/compressed_bit_vector.cpp
+++ b/coding/compressed_bit_vector.cpp
@@ -187,8 +187,8 @@ void BuildCompressedBitVector(Writer & writer, vector<uint32_t> const & posOnes,
writer.Write(serialSizesEnc.data(), serialSizesEnc.size());
}
{
- // Second Stage. Encode all bits of all diffs using BitSink.
- BitSink bitWriter(writer);
+ // Second Stage. Encode all bits of all diffs using BitWriter.
+ BitWriter<Writer> bitWriter(writer);
int64_t prevOnePos = -1;
uint64_t totalReadBits = 0;
uint64_t totalReadCnts = 0;
@@ -319,8 +319,8 @@ void BuildCompressedBitVector(Writer & writer, vector<uint32_t> const & posOnes,
}
{
- // Second stage, encode all ranges bits using BitSink.
- BitSink bitWriter(writer);
+ // Second stage, encode all ranges bits using BitWriter.
+ BitWriter<Writer> bitWriter(writer);
int64_t prevOnePos = -1;
uint64_t onesRangeLen = 0;
for (uint32_t i = 0; i < posOnes.size(); ++i)
@@ -404,8 +404,11 @@ vector<uint32_t> DecodeCompressedBitVector(Reader & reader) {
ArithmeticDecoder arithDec(*arithDecReader, distrTable);
for (uint64_t i = 0; i < cntElements; ++i) bitsUsedVec.push_back(arithDec.Decode());
decodeOffset += encSizesBytesize;
- unique_ptr<Reader> bitReaderReader(reader.CreateSubReader(decodeOffset, serialSize - decodeOffset));
- BitSource bitReader(*bitReaderReader);
+ unique_ptr<Reader> bitMemReader(
+ reader.CreateSubReader(decodeOffset, serialSize - decodeOffset));
+ ReaderPtr<Reader> readerPtr(bitMemReader.get());
+ ReaderSource<ReaderPtr<Reader>> bitReaderSource(readerPtr);
+ BitReader<ReaderSource<ReaderPtr<Reader>>> bitReader(bitReaderSource);
int64_t prevOnePos = -1;
for (uint64_t i = 0; i < cntElements; ++i)
{
@@ -456,8 +459,11 @@ vector<uint32_t> DecodeCompressedBitVector(Reader & reader) {
vector<uint32_t> bitsSizes1;
for (uint64_t i = 0; i < cntElements1; ++i) bitsSizes1.push_back(arith_dec1.Decode());
decodeOffset += enc1SizesBytesize;
- unique_ptr<Reader> bitReaderReader(reader.CreateSubReader(decodeOffset, serialSize - decodeOffset));
- BitSource bitReader(*bitReaderReader);
+ unique_ptr<Reader> bitMemReader(
+ reader.CreateSubReader(decodeOffset, serialSize - decodeOffset));
+ ReaderPtr<Reader> readerPtr(bitMemReader.get());
+ ReaderSource<ReaderPtr<Reader>> bitReaderSource(readerPtr);
+ BitReader<ReaderSource<ReaderPtr<Reader>>> bitReader(bitReaderSource);
uint64_t sum = 0, i0 = 0, i1 = 0;
while (i0 < cntElements0 && i1 < cntElements1)
{