// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- // vim: ts=8 sw=2 smarttab #pragma once #include #include #include "include/types.h" #include "include/buffer.h" class CDC { public: virtual ~CDC() = default; /// calculate chunk boundaries as vector of (offset, length) pairs virtual void calc_chunks( const bufferlist& inputdata, std::vector> *chunks) const = 0; /// set target chunk size as a power of 2, and number of bits for hard min/max virtual void set_target_bits(int bits, int windowbits = 2) = 0; static std::unique_ptr create( const std::string& type, int bits, int windowbits = 0); }; void generate_buffer(int size, bufferlist *outbl, int seed = 0);