|
evio
6.0
|
Singleton class used to provide data compression and decompression in a variety of formats. More...
#include <Compressor.h>
Public Types | |
| enum | CompressionType { UNCOMPRESSED = 0 , LZ4 , LZ4_BEST , GZIP } |
| Enum of supported data compression types. More... | |
Static Public Member Functions | |
| static Compressor & | getInstance () |
| Get an instance of this singleton class. More... | |
| static CompressionType | toCompressionType (uint32_t type) |
| Method to convert an integer to a CompressionType object. More... | |
| static int | getMaxCompressedLength (CompressionType compressionType, uint32_t uncompressedLength) |
| Returns the maximum number of bytes needed to compress the given length of uncompressed data. More... | |
| static int | compressLZ4 (ByteBuffer &src, int srcSize, ByteBuffer &dst, int maxSize) |
| Fastest LZ4 compression. More... | |
| static int | compressLZ4 (uint8_t *src, int srcOff, int srcSize, uint8_t *dst, int dstOff, int maxSize) |
| Fastest LZ4 compression. More... | |
| static int | compressLZ4 (ByteBuffer &src, int srcOff, int srcSize, ByteBuffer &dst, int dstOff, int maxSize) |
| Fastest LZ4 compression. More... | |
| static int | compressLZ4Best (ByteBuffer &src, int srcSize, ByteBuffer &dst, int maxSize) |
| Highest LZ4 compression. More... | |
| static int | compressLZ4Best (uint8_t *src, int srcOff, int srcSize, uint8_t *dst, int dstOff, int maxSize) |
| Highest LZ4 compression. More... | |
| static int | compressLZ4Best (ByteBuffer &src, int srcOff, int srcSize, ByteBuffer &dst, int dstOff, int maxSize) |
| Highest LZ4 compression. More... | |
| static int | uncompressLZ4 (ByteBuffer &src, int srcSize, ByteBuffer &dst) |
| LZ4 decompression. More... | |
| static int | uncompressLZ4 (ByteBuffer &src, int srcOff, int srcSize, ByteBuffer &dst) |
| LZ4 decompression. More... | |
| static int | uncompressLZ4 (ByteBuffer &src, int srcOff, int srcSize, ByteBuffer &dst, int dstOff) |
| LZ4 decompression. More... | |
| static int | uncompressLZ4 (uint8_t *src, int srcOff, int srcSize, uint8_t *dst, int dstOff, int dstCapacity) |
| LZ4 decompression. More... | |
Singleton class used to provide data compression and decompression in a variety of formats.
This class in NOT thread safe when using the gzip deflating and inflating routines.
|
static |
Fastest LZ4 compression.
Returns length of compressed data in bytes.
| src | source of uncompressed data. |
| srcOff | start offset in src regardless of position. |
| srcSize | number of bytes to compress. |
| dst | destination array. |
| dstOff | start offset in dst regardless of position. |
| maxSize | maximum number of bytes to write in dst. |
| EvioException | if maxSize < max # of compressed bytes or compression failed. |
References evio::ByteBuffer::array().
|
static |
Fastest LZ4 compression.
Returns length of compressed data in bytes.
| src | source of uncompressed data from position. |
| srcSize | number of bytes to compress. |
| dst | destination buffer from position. |
| maxSize | maximum number of bytes to write in dst. |
| EvioException | if maxSize < max # of compressed bytes or compression failed. |
References evio::ByteBuffer::array(), and evio::ByteBuffer::position().
Referenced by evio::RecordOutput::build().
|
static |
Fastest LZ4 compression.
Returns length of compressed data in bytes.
| src | source of uncompressed data. |
| srcOff | start offset in src. |
| srcSize | number of bytes to compress. |
| dst | destination array. |
| dstOff | start offset in dst. |
| maxSize | maximum number of bytes to write in dst. |
| EvioException | if maxSize < max # of compressed bytes or compression failed. |
|
static |
Highest LZ4 compression.
Returns length of compressed data in bytes.
| src | source of uncompressed data. |
| srcOff | start offset in src. |
| srcSize | number of bytes to compress. |
| dst | destination array. |
| dstOff | start offset in dst. |
| maxSize | maximum number of bytes to write in dst. |
| EvioException | if maxSize < max # of compressed bytes or compression failed. |
References evio::ByteBuffer::array().
|
static |
Highest LZ4 compression.
Returns length of compressed data in bytes.
| src | source of uncompressed data starting at position. |
| srcSize | number of bytes to compress. |
| dst | destination buffer starting at position. |
| maxSize | maximum number of bytes to write in dst. |
| EvioException | if maxSize < max # of compressed bytes or compression failed. |
References evio::ByteBuffer::array(), and evio::ByteBuffer::position().
Referenced by evio::RecordOutput::build().
|
static |
Highest LZ4 compression.
Returns length of compressed data in bytes.
| src | source of uncompressed data. |
| srcOff | start offset in src. |
| srcSize | number of bytes to compress. |
| dst | destination array. |
| dstOff | start offset in dst. |
| maxSize | maximum number of bytes to write in dst. |
| EvioException | if maxSize < max # of compressed bytes or compression failed. |
|
inlinestatic |
Get an instance of this singleton class.
Referenced by evio::RecordOutput::build(), evio::RecordInput::readRecord(), and evio::RecordInput::uncompressRecord().
|
static |
Returns the maximum number of bytes needed to compress the given length of uncompressed data.
Depends on compression type. Unknown for gzip.
| compressionType | type of data compression to do (0=none, 1=lz4 fast, 2=lz4 best, 3=gzip). Default to none. |
| uncompressedLength | uncompressed data length in bytes. |
References GZIP, LZ4, LZ4_BEST, and UNCOMPRESSED.
|
static |
Method to convert an integer to a CompressionType object.
| type | integer to convert. |
References GZIP, LZ4, LZ4_BEST, and UNCOMPRESSED.
|
static |
LZ4 decompression.
Returns original length of decompressed data in bytes.
| src | source of compressed data. |
| srcOff | start offset in src. |
| srcSize | number of compressed bytes. |
| dst | destination array. |
| EvioException | if destination buffer is too small to hold uncompressed data or source data is malformed. |
References evio::ByteBuffer::array(), evio::ByteBuffer::limit(), evio::ByteBuffer::position(), and evio::ByteBuffer::remaining().
|
static |
LZ4 decompression.
Returns original length of decompressed data in bytes.
| src | source of compressed data. |
| srcOff | start offset in src. |
| srcSize | number of compressed bytes. |
| dst | destination array. |
| dstOff | start offset in dst. |
| EvioException | if destination buffer is too small to hold uncompressed data or source data is malformed. |
References evio::ByteBuffer::array(), evio::ByteBuffer::limit(), and evio::ByteBuffer::remaining().
|
static |
LZ4 decompression.
Returns original length of decompressed data in bytes.
| src | source of compressed data. |
| srcSize | number of compressed bytes. |
| dst | destination array. |
| EvioException | if destination buffer is too small to hold uncompressed data or source data is malformed. |
References evio::ByteBuffer::position().
Referenced by evio::RecordInput::readRecord(), and evio::RecordInput::uncompressRecord().
|
static |
LZ4 decompression.
Returns original length of decompressed data in bytes.
| src | source of compressed data. |
| srcOff | start offset in src. |
| srcSize | number of compressed bytes. |
| dst | destination array. |
| dstOff | start offset in dst. |
| dstCapacity | size of destination buffer in bytes, which must be already allocated. |
| EvioException | if uncompressed data bytes > dstCapacity or source data is malformed. |