Signet Forge 0.1.0
C++20 Parquet library with AI-native extensions
DEMO
Loading...
Searching...
No Matches
signet::forge::CompressionCodec Class Referenceabstract

Abstract base class for all compression/decompression codecs. More...

#include <codec.hpp>

Inheritance diagram for signet::forge::CompressionCodec:
signet::forge::SnappyCodec

Public Member Functions

virtual ~CompressionCodec ()=default
 Virtual destructor for safe polymorphic deletion.
 
virtual expected< std::vector< uint8_t > > compress (const uint8_t *data, size_t size) const =0
 Compress raw data into codec-specific format.
 
virtual expected< std::vector< uint8_t > > decompress (const uint8_t *data, size_t size, size_t uncompressed_size) const =0
 Decompress codec-specific data back to raw bytes.
 
virtual Compression codec_type () const =0
 Return the Parquet Compression enum value identifying this codec.
 
virtual const char * name () const =0
 Return a human-readable codec name (e.g.
 

Detailed Description

Abstract base class for all compression/decompression codecs.

Each concrete codec (Snappy, ZSTD, LZ4, GZIP) derives from this class and registers itself with the CodecRegistry at startup. The codec is stateless and all methods are const-qualified, making instances safe to share across threads.

See also
CodecRegistry, compress(), decompress()

Definition at line 45 of file codec.hpp.

Constructor & Destructor Documentation

◆ ~CompressionCodec()

virtual signet::forge::CompressionCodec::~CompressionCodec ( )
virtualdefault

Virtual destructor for safe polymorphic deletion.

Member Function Documentation

◆ codec_type()

virtual Compression signet::forge::CompressionCodec::codec_type ( ) const
pure virtual

Return the Parquet Compression enum value identifying this codec.

Returns
The Compression enumerator (e.g. Compression::ZSTD).

Implemented in signet::forge::SnappyCodec.

◆ compress()

virtual expected< std::vector< uint8_t > > signet::forge::CompressionCodec::compress ( const uint8_t *  data,
size_t  size 
) const
pure virtual

Compress raw data into codec-specific format.

Parameters
dataPointer to the uncompressed input bytes.
sizeNumber of bytes to compress.
Returns
The compressed byte buffer on success, or an Error on failure.

Implemented in signet::forge::SnappyCodec.

◆ decompress()

virtual expected< std::vector< uint8_t > > signet::forge::CompressionCodec::decompress ( const uint8_t *  data,
size_t  size,
size_t  uncompressed_size 
) const
pure virtual

Decompress codec-specific data back to raw bytes.

Parameters
dataPointer to the compressed input bytes.
sizeNumber of compressed bytes.
uncompressed_sizeExpected output size (from the Parquet page header).
Returns
The decompressed byte buffer on success, or an Error on failure.
Note
The caller must supply the correct uncompressed_size; a mismatch between actual and expected sizes is treated as corruption.

Implemented in signet::forge::SnappyCodec.

◆ name()

virtual const char * signet::forge::CompressionCodec::name ( ) const
pure virtual

Return a human-readable codec name (e.g.

"ZSTD", "snappy", "lz4_raw").

Returns
Null-terminated string with the codec name. The pointer is valid for the lifetime of the codec instance.

Implemented in signet::forge::SnappyCodec.


The documentation for this class was generated from the following file: