![]() |
Disk ARchive
2.6.12
Full featured and portable backup and archiving tool
|
compression class for gzip and bzip2 algorithms More...
#include <compressor.hpp>
Inherits libdar::generic_file.
Public Member Functions | |
| compressor (compression algo, generic_file &compressed_side, U_I compression_level=9) | |
| compressor (compression algo, generic_file *compressed_side, U_I compression_level=9) | |
| compressor (const compressor &ref)=delete | |
| compressor (compressor &&ref)=delete | |
| compressor & | operator= (const compressor &ref)=delete |
| compressor & | operator= (compressor &&ref)=delete |
| compression | get_algo () const |
| void | suspend_compression () |
| void | resume_compression () |
| bool | is_compression_suspended () const |
| virtual bool | skippable (skippability direction, const infinint &amount) override |
| whether the implementation is able to skip More... | |
| virtual bool | skip (const infinint &pos) override |
| skip at the absolute position More... | |
| virtual bool | skip_to_eof () override |
| skip to the end of file | |
| virtual bool | skip_relative (S_I x) override |
| skip relatively to the current position | |
| virtual infinint | get_position () const override |
| get the current read/write position | |
Public Member Functions inherited from libdar::generic_file | |
| generic_file (gf_mode m) | |
| main constructor | |
| generic_file (const generic_file &ref) | |
| copy constructor | |
| generic_file (generic_file &&ref) noexcept | |
| move constructor | |
| generic_file & | operator= (const generic_file &ref) |
| assignment operator | |
| generic_file & | operator= (generic_file &&ref) noexcept |
| move operator | |
| ~generic_file () noexcept(false) | |
| virtual destructor, More... | |
| void | terminate () |
| destructor-like call, except that it is allowed to throw exceptions | |
| bool | operator== (generic_file &ref) |
| bool | operator!= (generic_file &ref) |
| gf_mode | get_mode () const |
| retreive the openning mode for this object | |
| void | read_ahead (const infinint &amount) |
| void | ignore_read_ahead (bool mode) |
| virtual U_I | read (char *a, U_I size) override |
| read data from the generic_file inherited from proto_generic_file | |
| virtual void | write (const char *a, U_I size) override |
| write data to the generic_file inherited from proto_generic_file | |
| void | write (const std::string &arg) |
| write a string to the generic_file More... | |
| S_I | read_back (char &a) |
| skip back one char, read on char and skip back one char | |
| S_I | read_forward (char &a) |
| read one char | |
| virtual void | copy_to (generic_file &ref) |
| copy all data from current position to the object in argument | |
| virtual void | copy_to (generic_file &ref, const infinint &crc_size, crc *&value) |
| copy all data from the current position to the object in argument and computes a CRC value of the transmitted data More... | |
| U_32 | copy_to (generic_file &ref, U_32 size) |
| small copy (up to 4GB) with CRC calculation | |
| infinint | copy_to (generic_file &ref, infinint size) |
| copy the given amount to the object in argument | |
| bool | diff (generic_file &f, const infinint &me_read_ahead, const infinint &you_read_ahead, const infinint &crc_size, crc *&value) |
| compares the contents with the object in argument More... | |
| bool | diff (generic_file &f, const infinint &me_read_ahead, const infinint &you_read_ahead, const infinint &crc_size, crc *&value, infinint &err_offset) |
| void | reset_crc (const infinint &width) |
| reset CRC on read or writen data More... | |
| bool | crc_status () const |
| to known whether CRC calculation is activated or not | |
| crc * | get_crc () |
| get CRC of the transfered date since last reset More... | |
| void | sync_write () |
| write any pending data | |
| void | flush_read () |
| be ready to read at current position, reseting all pending data for reading, cached and in compression engine for example | |
Public Member Functions inherited from libdar::proto_generic_file | |
| proto_generic_file (const proto_generic_file &ref)=default | |
| copy constructor | |
| proto_generic_file (proto_generic_file &&ref) noexcept=default | |
| move constructor | |
| proto_generic_file & | operator= (const proto_generic_file &ref)=default |
| assignment operator | |
| proto_generic_file & | operator= (proto_generic_file &&ref) noexcept=default |
| move operator | |
| virtual | ~proto_generic_file () noexcept(false) |
| virtual destructor More... | |
Protected Member Functions | |
| virtual void | inherited_read_ahead (const infinint &amount) override |
| tells the object that several calls to read() will follow to probably obtain at least the given amount of data More... | |
| virtual U_I | inherited_read (char *a, U_I size) override |
| implementation of read() operation More... | |
| virtual void | inherited_write (const char *a, U_I size) override |
| implementation of the write() operation More... | |
| virtual void | inherited_sync_write () override |
| write down any pending data More... | |
| virtual void | inherited_flush_read () override |
| reset internal engine, flush caches in order to read the data at current position More... | |
| virtual void | inherited_terminate () override |
| destructor-like call, except that it is allowed to throw exceptions More... | |
Protected Member Functions inherited from libdar::generic_file | |
| void | set_mode (gf_mode x) |
| bool | is_terminated () const |
Private Member Functions | |
| void | init (compression algo, generic_file *compressed_side, U_I compression_level) |
| void | local_terminate () |
| U_I | none_read (char *a, U_I size) |
| U_I | gzip_read (char *a, U_I size) |
| U_I | lzo_read (char *a, U_I size) |
| void | none_write (const char *a, U_I size) |
| void | gzip_write (const char *a, U_I size) |
| void | lzo_write (const char *a, U_I size) |
| void | lzo_compress_buffer_and_write () |
| void | lzo_read_and_uncompress_to_buffer () |
| void | change_algo (compression new_algo, U_I new_compression_level) |
| changes compression algorithm used by the compressor More... | |
| void | change_algo (compression new_algo) |
| changes the compression algorithm keeping the same compression level | |
| void | compr_flush_write () |
| void | compr_flush_read () |
| void | clean_read () |
| void | clean_write () |
Private Attributes | |
| xfer * | compr |
| xfer * | decompr |
| datastructure for bzip2 an gzip compression | |
| char * | lzo_read_buffer |
| stores clear data (uncompressed) read from the compressed generic_file | |
| char * | lzo_write_buffer |
| stores the clear data to be compressed and written to the compressed generic_file | |
| U_I | lzo_read_size |
| number of available bytes in the read buffer for lzo decompression | |
| U_I | lzo_write_size |
| number of available bytes to compress and next place where to add more data in the wite buffer | |
| U_I | lzo_read_start |
| location of the next byte to read out from the read buffer | |
| bool | lzo_write_flushed |
| whether write flushing has been done | |
| bool | lzo_read_reached_eof |
| whether reading reached end of file and the lzo engine has to be reset to uncompress further data | |
| char * | lzo_compressed |
| compressed data just read or about to be written | |
| char * | lzo_wrkmem |
| work memory for LZO library | |
| generic_file * | compressed |
| bool | compressed_owner |
| compression | current_algo |
| bool | suspended |
| compression | suspended_compr |
| U_I | current_level |
| U_I(compressor::* | read_ptr )(char *a, U_I size) |
| void(compressor::* | write_ptr )(const char *a, U_I size) |
Additional Inherited Members | |
Public Types inherited from libdar::generic_file | |
| enum | skippability { skip_backward, skip_forward } |
compression class for gzip and bzip2 algorithms
Definition at line 45 of file compressor.hpp.
|
private |
changes compression algorithm used by the compressor
| [in] | new_algo | defines the new algorithm to use |
| [in] | new_compression_level | defines the new compression level to use. |
Referenced by change_algo().
|
inlineoverrideprotectedvirtual |
reset internal engine, flush caches in order to read the data at current position
Implements libdar::generic_file.
Definition at line 81 of file compressor.hpp.
|
inlineoverrideprotectedvirtual |
implementation of read() operation
| [in,out] | a | where to put the data to read |
| [in] | size | says how much data to read |
Implements libdar::generic_file.
Definition at line 78 of file compressor.hpp.
|
inlineoverrideprotectedvirtual |
tells the object that several calls to read() will follow to probably obtain at least the given amount of data
| [in] | amount | is the maximum expected amount of data that is known to be read |
Implements libdar::generic_file.
Definition at line 77 of file compressor.hpp.
References libdar::generic_file::read_ahead().
|
inlineoverrideprotectedvirtual |
write down any pending data
Implements libdar::generic_file.
Definition at line 80 of file compressor.hpp.
|
inlineoverrideprotectedvirtual |
destructor-like call, except that it is allowed to throw exceptions
Implements libdar::generic_file.
Definition at line 82 of file compressor.hpp.
|
inlineoverrideprotectedvirtual |
implementation of the write() operation
| [in] | a | what data to write |
| [in] | size | amount of data to write |
Implements libdar::generic_file.
Definition at line 79 of file compressor.hpp.
|
inlineoverridevirtual |
skip at the absolute position
| [in] | pos | the offset in byte where next read/write operation must start |
Implements libdar::generic_file.
Definition at line 71 of file compressor.hpp.
References libdar::generic_file::skip().
|
inlineoverridevirtual |
whether the implementation is able to skip
Implements libdar::generic_file.
Definition at line 70 of file compressor.hpp.
References libdar::generic_file::skippable().
1.8.18