virtual ~CDC() = default;
virtual void calc_chunks(
- ceph::buffer::list& inputdata,
+ const bufferlist& inputdata,
std::vector<std::pair<uint64_t, uint64_t>> *chunks) = 0;
virtual void set_target_bits(int bits, int windowbits = 2) = 0;
}
void FastCDC::calc_chunks(
- bufferlist& bl,
+ const bufferlist& bl,
std::vector<std::pair<uint64_t, uint64_t>> *chunks)
{
if (bl.length() == 0) {
}
void calc_chunks(
- bufferlist& bl,
+ const bufferlist& bl,
std::vector<std::pair<uint64_t, uint64_t>> *chunks) override;
};
#include "FixedCDC.h"
void FixedCDC::calc_chunks(
- bufferlist& bl,
+ const bufferlist& bl,
std::vector<std::pair<uint64_t, uint64_t>> *chunks)
{
size_t len = bl.length();
chunk_size = 1ul << target;
}
void calc_chunks(
- bufferlist& bl,
+ const bufferlist& bl,
std::vector<std::pair<uint64_t, uint64_t>> *chunks) override;
};
}
void calc_chunks(
- ceph::buffer::list& inputdata,
+ const ceph::buffer::list& inputdata,
std::vector<std::pair<uint64_t, uint64_t>> *chunks) override {
- do_rabin_chunks(inputdata, *chunks);
+ bufferlist b = inputdata;
+ do_rabin_chunks(b, *chunks);
}
int do_rabin_chunks(ceph::buffer::list& inputdata,