37 #include "../my_config.h"
48 class xz_module:
public compress_module
51 xz_module(U_I compression_level = 9);
52 xz_module(
const xz_module & ref) { setup(ref.level); };
53 xz_module(xz_module && ref) noexcept =
default;
54 xz_module & operator = (
const xz_module & ref) { end_process(); setup(ref.level);
return *
this; };
55 xz_module & operator = (xz_module && ref) noexcept =
default;
56 virtual ~xz_module() { end_process(); };
62 virtual U_I get_max_compressing_size()
const override;
64 virtual U_I get_min_size_to_compress(U_I clear_size)
const override;
66 virtual U_I compress_data(
const char *normal,
67 const U_I normal_size,
69 U_I zip_buf_size)
const override;
71 virtual U_I uncompress_data(
const char *zip_buf,
72 const U_I zip_buf_size,
74 U_I normal_size)
const override;
77 virtual std::unique_ptr<compress_module> clone()
const override;
82 mutable lzma_stream lzma_str;
85 void setup(U_I compression_level);
86 void init_decompr()
const;
87 void init_compr()
const;
88 void end_process()
const;
provides abstracted interface of per-block compression/decompression
compression
the different compression algorithm available
@ xz
lzma compression (streamed)
switch module to limitint (32 ou 64 bits integers) or infinint
libdar namespace encapsulate all libdar symbols