27 #ifndef LZO_MODULE_HPP
28 #define LZO_MODULE_HPP
34 #include "../my_config.h"
46 class lzo_module:
public compress_module
49 lzo_module(
compression algo, U_I compression_level = 9) { init(algo, compression_level); };
50 lzo_module(
const lzo_module & ref) { init(ref.lzo_algo, ref.level); };
51 lzo_module(lzo_module && ref) noexcept =
default;
52 lzo_module & operator = (
const lzo_module & ref) { init(ref.lzo_algo, ref.level);
return *
this; };
53 lzo_module & operator = (lzo_module && ref) noexcept =
default;
54 virtual ~lzo_module() noexcept = default;
60 virtual U_I get_max_compressing_size()
const override;
62 virtual U_I get_min_size_to_compress(U_I clear_size)
const override;
64 virtual U_I compress_data(
const char *normal,
65 const U_I normal_size,
67 U_I zip_buf_size)
const override;
69 virtual U_I uncompress_data(
const char *zip_buf,
70 const U_I zip_buf_size,
72 U_I normal_size)
const override;
75 virtual std::unique_ptr<compress_module> clone()
const override;
80 std::unique_ptr<char[]> wrkmem_decompr;
81 std::unique_ptr<char[]> wrkmem_compr;
provides abstracted interface of per-block compression/decompression
compression
the different compression algorithm available
@ lzo
lzo compression (streamed)
libdar namespace encapsulate all libdar symbols