MySQL 8.0.39
Source Code Documentation
binary_log::transaction::compression::Zstd_dec Class Reference

Decompressor class that uses the ZSTD library. More...

#include <zstd_dec.h>

Inheritance diagram for binary_log::transaction::compression::Zstd_dec:
[legend]

Public Types

using Char_t = unsigned char
 
using Grow_constraint_t = mysqlns::buffer::Grow_constraint
 
using Size_t = mysqlns::buffer::Buffer_view< Char_t >::Size_t
 
- Public Types inherited from binary_log::transaction::compression::Decompressor
using Char_t = unsigned char
 
using Size_t = mysqlns::buffer::Buffer_view< Char_t >::Size_t
 
using Managed_buffer_t = mysqlns::buffer::Managed_buffer< Char_t >
 
using Grow_constraint_t = mysqlns::buffer::Grow_constraint
 

Public Member Functions

 Zstd_dec ()
 
 ~Zstd_dec () override
 
 Zstd_dec (const Zstd_dec &)=delete
 
 Zstd_dec (const Zstd_dec &&)=delete
 
Zstd_decoperator= (const Zstd_dec &)=delete
 
Zstd_decoperator= (const Zstd_dec &&)=delete
 
- Public Member Functions inherited from binary_log::transaction::compression::Decompressor
 Decompressor ()=default
 
 Decompressor (const Decompressor &)=delete
 
 Decompressor (const Decompressor &&)=delete
 
const Decompressoroperator= (const Decompressor &)=delete
 
const Decompressoroperator= (const Decompressor &&)=delete
 
virtual ~Decompressor ()=default
 
type get_type_code () const
 
void reset ()
 Reset the frame. More...
 
template<class Input_char_t >
void feed (const Input_char_t *input_data, Size_t input_size)
 Submit data to decompress. More...
 
Decompress_status decompress (Managed_buffer_t &out, Size_t output_size)
 Decompress an exact, given number of bytes. More...
 
std::pair< Decompress_status, Size_tdecompress (Char_t *out, Size_t output_size)
 Decompress an exact, given number of bytes. More...
 
Grow_constraint_t get_grow_constraint_hint () const
 Return a Grow_constraint that may be used with the Managed_buffer storing the output, in order to optimize memory usage for a particular compression algorithm. More...
 

Static Public Attributes

static constexpr type type_code = ZSTD
 

Private Member Functions

type do_get_type_code () const override
 
void do_reset () override
 Implement do_reset. More...
 
void do_feed (const Char_t *input_data, Size_t input_size) override
 Implement feed. More...
 
std::pair< Decompress_status, Size_tdo_decompress (Char_t *out, Size_t output_size) override
 Implement decompress. More...
 
Grow_constraint_t do_get_grow_constraint_hint () const override
 Implement get_grow_constraint_hint. More...
 
void destroy ()
 Deallocate the ZSTD decompression context. More...
 

Private Attributes

ZSTD_DStream * m_ctx {nullptr}
 ZSTD decompression context object. More...
 
ZSTD_inBuffer m_ibuf {nullptr, 0, 0}
 ZSTD input buffer. More...
 
bool m_frame_boundary = false
 

Detailed Description

Decompressor class that uses the ZSTD library.

Member Typedef Documentation

◆ Char_t

◆ Grow_constraint_t

◆ Size_t

Constructor & Destructor Documentation

◆ Zstd_dec() [1/3]

binary_log::transaction::compression::Zstd_dec::Zstd_dec ( )

◆ ~Zstd_dec()

binary_log::transaction::compression::Zstd_dec::~Zstd_dec ( )
override

◆ Zstd_dec() [2/3]

binary_log::transaction::compression::Zstd_dec::Zstd_dec ( const Zstd_dec )
delete

◆ Zstd_dec() [3/3]

binary_log::transaction::compression::Zstd_dec::Zstd_dec ( const Zstd_dec &&  )
delete

Member Function Documentation

◆ destroy()

void binary_log::transaction::compression::Zstd_dec::destroy ( )
private

Deallocate the ZSTD decompression context.

◆ do_decompress()

std::pair< Decompress_status, Decompressor::Size_t > binary_log::transaction::compression::Zstd_dec::do_decompress ( Char_t out,
Size_t  output_size 
)
overrideprivatevirtual

Implement decompress.

This differs from decompress in that it does not have to reset the frame when returning out_of_memory or corrupted; the caller does that.

Implements binary_log::transaction::compression::Decompressor.

◆ do_feed()

void binary_log::transaction::compression::Zstd_dec::do_feed ( const Char_t input_data,
Size_t  input_size 
)
overrideprivatevirtual

◆ do_get_grow_constraint_hint()

Decompressor::Grow_constraint_t binary_log::transaction::compression::Zstd_dec::do_get_grow_constraint_hint ( ) const
overrideprivatevirtual

Implement get_grow_constraint_hint.

In this base class, the function returns a default-constructed Grow_constraint, i.e., one which does not limit the Grow_calculator.

Reimplemented from binary_log::transaction::compression::Decompressor.

◆ do_get_type_code()

type binary_log::transaction::compression::Zstd_dec::do_get_type_code ( ) const
overrideprivatevirtual

◆ do_reset()

void binary_log::transaction::compression::Zstd_dec::do_reset ( )
overrideprivatevirtual

Implement do_reset.

Implements binary_log::transaction::compression::Decompressor.

◆ operator=() [1/2]

Zstd_dec & binary_log::transaction::compression::Zstd_dec::operator= ( const Zstd_dec &&  )
delete

◆ operator=() [2/2]

Zstd_dec & binary_log::transaction::compression::Zstd_dec::operator= ( const Zstd_dec )
delete

Member Data Documentation

◆ m_ctx

ZSTD_DStream* binary_log::transaction::compression::Zstd_dec::m_ctx {nullptr}
private

ZSTD decompression context object.

◆ m_frame_boundary

bool binary_log::transaction::compression::Zstd_dec::m_frame_boundary = false
private

◆ m_ibuf

ZSTD_inBuffer binary_log::transaction::compression::Zstd_dec::m_ibuf {nullptr, 0, 0}
private

ZSTD input buffer.

◆ type_code

constexpr type binary_log::transaction::compression::Zstd_dec::type_code = ZSTD
staticconstexpr

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