MCPcopy Create free account
hub / github.com/comaps/comaps / EncodeAndWrite

Method EncodeAndWrite

libs/coding/bwt_coder.hpp:58–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

56
57 template <typename Sink>
58 static void EncodeAndWrite(Params const & params, Sink & sink, size_t n, uint8_t const * s)
59 {
60 CHECK(params.m_blockSize != 0, ());
61 CHECK_GREATER(n + params.m_blockSize, n, ());
62
63 BufferT bwtBuffer;
64
65 size_t const numBlocks = (n + params.m_blockSize - 1) / params.m_blockSize;
66 WriteVarUint(sink, numBlocks);
67 for (size_t i = 0; i < n; i += params.m_blockSize)
68 {
69 auto const m = std::min(n - i, params.m_blockSize);
70 EncodeAndWriteBlock(sink, m, s + i, bwtBuffer);
71 }
72 }
73
74 template <typename Source>
75 static void ReadAndDecodeBlock(Source & source, BufferT & bwtBuffer, BufferT & revBuffer)

Callers 4

EncodeAndWriteBlockMethod · 0.45
UNIT_TESTFunction · 0.45
BuildSuccinctTrieFunction · 0.45
GoToStringMethod · 0.45

Calls 1

WriteVarUintFunction · 0.85

Tested by 1

UNIT_TESTFunction · 0.36