8#ifndef BOTAN_COMPRESSION_TRANSFORM_H_
9#define BOTAN_COMPRESSION_TRANSFORM_H_
11#include <botan/secmem.h>
12#include <botan/exceptn.h>
27 static std::unique_ptr<Compression_Algorithm>
28 create(
const std::string& algo_spec);
35 static std::unique_ptr<Compression_Algorithm>
36 create_or_throw(
const std::string& algo_spec);
46 virtual void start(
size_t comp_level = 0) = 0;
67 virtual std::string
name()
const = 0;
88 static std::unique_ptr<Decompression_Algorithm>
89 create(
const std::string& algo_spec);
96 static std::unique_ptr<Decompression_Algorithm>
97 create_or_throw(
const std::string& algo_spec);
123 virtual std::string
name()
const = 0;
207 void clear()
final override;
210 void start(
size_t level)
final override;
214 virtual std::unique_ptr<Compression_Stream> make_stream(
size_t level)
const = 0;
217 std::unique_ptr<Compression_Stream> m_stream;
230 void clear()
final override;
233 void start()
final override;
237 virtual std::unique_ptr<Compression_Stream> make_stream()
const = 0;
240 std::unique_ptr<Compression_Stream> m_stream;
static std::unique_ptr< Compression_Algorithm > create(const std::string &algo_spec)
virtual void start(size_t comp_level=0)=0
virtual void finish(secure_vector< uint8_t > &final_block, size_t offset=0)=0
virtual void update(secure_vector< uint8_t > &buf, size_t offset=0, bool flush=false)=0
virtual std::string name() const =0
virtual ~Compression_Algorithm()=default
ErrorType error_type() const noexcept override
int error_code() const noexcept override
Compression_Error(const char *func_name, ErrorType type, int rc)
virtual void next_in(uint8_t *b, size_t len)=0
virtual size_t avail_in() const =0
virtual ~Compression_Stream()=default
virtual uint32_t finish_flag() const =0
virtual size_t avail_out() const =0
virtual uint32_t run_flag() const =0
virtual bool run(uint32_t flags)=0
virtual void next_out(uint8_t *b, size_t len)=0
virtual uint32_t flush_flag() const =0
static std::unique_ptr< Decompression_Algorithm > create(const std::string &algo_spec)
virtual ~Decompression_Algorithm()=default
virtual std::string name() const =0
virtual void finish(secure_vector< uint8_t > &final_block, size_t offset=0)=0
virtual void update(secure_vector< uint8_t > &buf, size_t offset=0)=0
void finish(secure_vector< uint8_t > &buf, size_t offset) final override
void clear() final override
void update(secure_vector< uint8_t > &buf, size_t offset, bool flush) final override
void finish(secure_vector< uint8_t > &buf, size_t offset) final override
void clear() final override
void update(secure_vector< uint8_t > &buf, size_t offset) final override
#define BOTAN_PUBLIC_API(maj, min)
Decompression_Algorithm * make_decompressor(const std::string &type)
std::string to_string(ErrorType type)
Convert an ErrorType to string.
Compression_Algorithm * make_compressor(const std::string &type)
std::vector< T, secure_allocator< T > > secure_vector