12#ifndef O2_FRAMEWORK_AODNATIVE_CODECS_H_
13#define O2_FRAMEWORK_AODNATIVE_CODECS_H_
33 PayloadDecompressor(std::span<const uint8_t>
src, uint32_t objLen, std::string
const& file, uint64_t fileOffset);
51 size_t produceFromChunk(uint8_t*
dst,
size_t n);
52 size_t zstdPrefix(uint8_t*
dst,
size_t n);
54 std::span<const uint8_t> mSrc;
56 std::string
const& mFile;
61 char mTag[2] = {0, 0};
62 std::span<const uint8_t> mChunkIn;
64 size_t mChunkDone = 0;
65 std::unique_ptr<Codec> mCodec;
66 std::vector<uint8_t> mScratch;
67 bool mPrefixOnly =
false;
73 std::string
const& file =
"<memory>", uint64_t fileOffset = 0);
76uint64_t
xxh64(std::span<const uint8_t>
data);
PayloadDecompressor(PayloadDecompressor const &)=delete
PayloadDecompressor & operator=(PayloadDecompressor const &)=delete
size_t produced() const
Bytes produced so far.
void read(uint8_t *dst, size_t n)
void readPrefix(uint8_t *dst, size_t n)
size_t decompressBounded(std::span< const uint8_t > src, uint32_t objLen, uint8_t *dst, size_t maxOut, std::string const &file="<memory>", uint64_t fileOffset=0)
uint64_t xxh64(std::span< const uint8_t > data)
XXH64 with seed 0, as used for the LZ4 chunk checksum.