|
TEC
A lightweight C++ library enabling safe, efficient execution in multithreaded and concurrent systems.
|
Compression wrapper for NetData objects with pluggable backends. More...
#include <tec_nd_compress.hpp>
Public Member Functions | |
| NdCompress () | |
| Default constructor — uses library-wide default compression settings. | |
| NdCompress (int _type, int _level=CompressionParams::kDefaultCompressionLevel, size_t _min_size=CompressionParams::kMinSize) | |
| Constructs compressor with explicit settings. | |
| virtual Status | compress (NetData &nd) const |
Compresses the payload of a NetData object in-place (if configured) | |
| virtual Status | uncompress (NetData &nd) const |
Decompresses the payload of a NetData object in-place (if compressed) | |
Protected Attributes | |
| int | type_ |
Compression algorithm identifier (from CompressionParams) | |
| int | level_ |
| Compression level (meaning depends on backend — usually [1..9] for Zlib) | |
| size_t | min_size_ |
| Minimum payload size (in bytes) below which compression is skipped. | |
Compression wrapper for NetData objects with pluggable backends.
Currently supports Zlib (deflate) when _TEC_USE_ZLIB / ZLIB_VERSION is defined. Designed to be used as a strategy object — either as a member or passed by const reference.
Main features:
NetData (moves internal buffer when compression occurs)min_size_)NetData::header (compression type, level, uncompressed size)const — the object is immutable after construction. compress() / uncompress() dispatch logic.Basic usage examples
|
inline |
Default constructor — uses library-wide default compression settings.
Initializes with:
CompressionParams::kDefaultCompressionCompressionParams::kDefaultCompressionLevelCompressionParams::kMinSize
|
inlineexplicit |
Constructs compressor with explicit settings.
| _type | Compression algorithm (e.g. CompressionParams::kCompressionZlib) |
| _level | Compression level (backend-specific; default = library default) |
| _min_size | Smallest payload size worth compressing (default = library minimum) |
Compresses the payload of a NetData object in-place (if configured)
| nd | Network data object to compress (modified in-place on success) |
Status::OK on success, error otherwiseBehavior:
min_size_, sets compression = kNoCompression and returnscompression, compression_level, size_uncompressed)nd remains unchangedDecompresses the payload of a NetData object in-place (if compressed)
| nd | Network data object to decompress (modified in-place on success) |
Status::OK on success, error otherwiseBehavior:
kNoCompression → returns immediately (no-op)size_uncompressed and updates sizend remains unchanged