23#include "ForwardDefinitions.h"
24#include "WriteFileHandler.h"
58 FirstZstdPreset = ZstdFaster,
59 LastZstdPreset = ZstdMax,
62 CompressedLast = ZstdMax,
75CompressionType toEnum<CompressionType>(
const std::string& compressionTypeName);
84 static const size_t kMinByteCountForCompression;
128 uint32_t& inOutCompressedSize,
129 size_t maxCompressedSize = 0);
144 return buffer_.data();
147 template <
class HeaderType>
149 return reinterpret_cast<HeaderType*
>(buffer_.data());
155 std::vector<uninitialized_byte> blank;
169 std::unique_ptr<CompressorImpl> impl_;
170 std::vector<uninitialized_byte> buffer_;
Definition Compressor.cpp:156
Helper class to compress data using lz4 or zstd presets.
Definition Compressor.h:82
uint32_t compress(const void *data, size_t dataSize, CompressionPreset preset, size_t headerSpace=0)
Definition Compressor.cpp:306
const void * getData() const
Definition Compressor.h:143
void clear()
Really deallocate the buffer's memory (clear() doesn't do that)
Definition Compressor.h:154
int startFrame(size_t frameSize, CompressionPreset zstdPreset, uint32_t &outSize)
Definition Compressor.cpp:323
int addFrameData(WriteFileHandler &file, const void *data, size_t dataSize, uint32_t &inOutCompressedSize, size_t maxCompressedSize=0)
Definition Compressor.cpp:333
int endFrame(WriteFileHandler &file, uint32_t &inOutCompressedSize, size_t maxCompressedSize=0)
Definition Compressor.cpp:345
HeaderType * getHeader()
Get the space reserved for a header.
Definition Compressor.h:148
The WriteFileHandler interface adds write operations to the FileHandler interface.
Definition WriteFileHandler.h:45
Definition AsyncDiskFileChunk.hpp:49
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:35
Definition Compressor.h:161