21#include <vrs/ForwardDefinitions.h>
22#include <vrs/VrsExport.h>
23#include <vrs/WriteFileHandler.h>
24#include <vrs/helpers/IOVector.h>
58 FirstZstdPreset = ZstdFaster,
59 LastZstdPreset = ZstdMax,
62 CompressedLast = ZstdMax,
75VRS_API
CompressionType toEnum<CompressionType>(
const string& compressionTypeName);
84 static const size_t kMinByteCountForCompression;
103 uint32_t& outCompressedSize,
104 size_t headerSpace = 0);
117 int startFrame(
size_t frameSize,
CompressionPreset zstdPreset, uint32_t& outSize);
133 uint32_t& inOutCompressedSize,
134 size_t maxCompressedSize = 0);
145 int endFrame(
WriteFileHandler& file, uint32_t& inOutCompressedSize,
size_t maxCompressedSize = 0);
150 return buffer_.data();
153 template <
class HeaderType>
155 return reinterpret_cast<HeaderType*
>(buffer_.data());
167 class CompressorImpl;
168 std::unique_ptr<CompressorImpl> impl_;
169 helpers::IOVector<uint8_t> buffer_;
Helper class to compress data using lz4 or zstd presets.
Definition Compressor.h:82
const void * getData() const
Definition Compressor.h:149
void clear()
Deallocate the internal buffer's storage.
Definition Compressor.h:160
HeaderType * getHeader()
Get the space reserved for a header.
Definition Compressor.h:154
The WriteFileHandler interface adds write operations to the FileHandler interface.
Definition WriteFileHandler.h:43
Definition Compressor.cpp:119
CompressionPreset
VRS Compression setting.
Definition Compressor.h:38
@ Lz4Tight
Slower compression speed, very fast decompression, better compression ratio.
@ Lz4Fast
Fast compression speed, very fast decompression, not great compression ratio.
@ Undefined
when not set explicitly
CompressionType
Type of compression. Used in VRS record headers, so never modify the values.
Definition Record.h:39