24#ifndef LIBBINLOGEVENTS_COMPRESSION_ZSTD_COMP_H_
25#define LIBBINLOGEVENTS_COMPRESSION_ZSTD_COMP_H_
33struct ZSTD_outBuffer_s;
114 ZSTD_outBuffer_s &obuf);
Container class that provides a sequence of buffers to the caller.
Abstract base class for compressors.
Definition: compressor.h:78
Managed_buffer_sequence_t::Size_t Size_t
Definition: compressor.h:82
mysqlns::buffer::Managed_buffer_sequence<> Managed_buffer_sequence_t
Definition: compressor.h:80
Managed_buffer_sequence_t::Char_t Char_t
Definition: compressor.h:81
Compressor class that uses the ZSTD library.
Definition: zstd_comp.h:38
void destroy()
Deallocate the ZSTD compression context.
Definition: zstd_comp.cpp:34
Zstd_comp & operator=(const Zstd_comp &rhs)=delete
void set_compression_level(Compression_level_t compression_level)
Set the compression level for this compressor.
Definition: zstd_comp.cpp:44
Zstd_comp & operator=(const Zstd_comp &&rhs)=delete
Compress_status do_finish(Managed_buffer_sequence_t &out) override
Implement finish.
Definition: zstd_comp.cpp:146
void do_reset() override
Implement reset.
Definition: zstd_comp.cpp:48
static constexpr Compression_level_t default_compression_level
The default compression level for this compressor.
Definition: zstd_comp.h:47
Compress_status do_compress(Managed_buffer_sequence_t &out) override
Implement compress.
Definition: zstd_comp.cpp:89
Compression_level_t m_next_compression_level
Compression level that was given in set_compression_level.
Definition: zstd_comp.h:147
static constexpr type type_code
Definition: zstd_comp.h:44
int Compression_level_t
Definition: zstd_comp.h:43
Zstd_comp(const Zstd_comp &&)=delete
Compress_status get_obuf(Managed_buffer_sequence_t &managed_buffer_sequence, ZSTD_outBuffer_s &obuf)
Make the ZSTD buffer point to the next available buffer; allocate one if necessary.
Definition: zstd_comp.cpp:179
static constexpr Compression_level_t uninitialized_compression_level
Value used to indicate that no compression level has been specified.
Definition: zstd_comp.h:136
ZSTD_inBuffer m_ibuf
The input buffer.
Definition: zstd_comp.h:133
void reset_compressor()
Reset just the ZSTD compressor state, not other state.
Definition: zstd_comp.cpp:62
bool m_started
True when compress has been called and neither finish nor reset has yet been called.
Definition: zstd_comp.h:140
Compression_level_t m_current_compression_level
Compression level that was set in the m_ctx object.
Definition: zstd_comp.h:143
void move_position(Managed_buffer_sequence_t &managed_buffer_sequence, Size_t delta)
Account for having written to the output buffer.
Definition: zstd_comp.cpp:174
void do_feed(const Char_t *input_data, Size_t input_size) override
Implement feed.
Definition: zstd_comp.cpp:76
~Zstd_comp() override
Definition: zstd_comp.cpp:32
ZSTD_CStream * m_ctx
The ZSTD compression context.
Definition: zstd_comp.h:130
Zstd_comp(const Zstd_comp &)=delete
type do_get_type_code() const override
Definition: zstd_comp.cpp:42
Grow_constraint_t do_get_grow_constraint_hint() const override
Implement get_grow_constraint_hint.
Definition: zstd_comp.cpp:202
Description of a heuristic to determine how much memory to allocate.
Definition: grow_constraint.h:67
Owned, non-contiguous, growable memory buffer.
Definition: managed_buffer_sequence.h:114
type
Definition: base.h:33
@ ZSTD
Definition: base.h:35
Grow_status
Error statuses for classes that use Grow_calculator.
Definition: grow_status.h:37
#define NODISCARD
The function attribute [[NODISCARD]] is a replacement for [[nodiscard]] to workaround a gcc bug.
Definition: nodiscard.h:47