32 {
34 z_stream stream;
35 const size_t pageSize =
provider->getPageSize();
36
37 stream.next_in =
const_cast<uint8_t*
>(
in);
38 stream.avail_in = size;
39 stream.avail_out = 0;
40 stream.zalloc = Z_NULL;
41 stream.zfree = Z_NULL;
42 stream.opaque = Z_NULL;
43
44 int r = deflateInit(&stream, Z_BEST_SPEED);
46
47 do
48 {
49 verify(stream.avail_out == 0);
50
52 result.push_back(currentPage);
53
55
56 stream.next_out = currentPageRaw.get();
57 stream.avail_out = pageSize;
58
59 r = deflate(&stream, Z_FINISH);
60
62
64
65 r = deflateEnd(&stream);
67
69 }
#define verify(expr)
Definition assertions.hh:40
#define zlib_verify(condition, function_name, r, stream)
Definition blob-compression.cc:19
PageProvider::Ptr provider
Definition blob-tests.cc:26
uint8_t in[blobSize]
Definition compression-tests.cc:25
std::shared_ptr< Scroom::MemoryBlocks::Page > Ptr
Definition memoryblobs.hh:33
std::shared_ptr< uint8_t > Ptr
Definition memoryblobs.hh:26
std::list< Page::Ptr > PageList
Definition memoryblobs.hh:35
SampleIterator< const uint8_t > result
Definition sampleiterator-tests.cc:94