![]() |
Disk ARchive
2.5.15
Full featured and portable backup and archiving tool
|
Sar class stands for Segmentation And Reassembly class. More...
#include <sar.hpp>
Inherits libdar::generic_file, libdar::contextual, and libdar::mem_ui.
Public Member Functions | |
| sar (const user_interaction &dialog, const std::string &base_name, const std::string &extension, const entrepot &where, bool by_the_end, const infinint &x_min_digits, bool lax=false, const std::string &execute="") | |
| this constructor reads data from a set of slices More... | |
| sar (const user_interaction &dialog, gf_mode open_mode, const std::string &base_name, const std::string &extension, const infinint &file_size, const infinint &first_file_size, bool x_warn_overwrite, bool x_allow_overwrite, const infinint &pause, const entrepot &where, const label &internal_name, const label &data_name, bool force_permission, U_I permission, hash_algo x_hash, const infinint &x_min_digits, bool format_07_compatible, const std::string &execute="") | |
| this constructor creates a new set of slices More... | |
| sar (const sar &ref) | |
| the destructor | |
| ~sar () | |
| destructor | |
| bool | skippable (skippability direction, const infinint &amount) |
| bool | skip (const infinint &pos) |
| bool | skip_to_eof () |
| skip to the end of file | |
| bool | skip_relative (S_I x) |
| skip relatively to the current position | |
| infinint | get_position () const |
| get the current read/write position | |
| const slice_layout & | get_slicing () const |
| bool | get_total_file_number (infinint &num) const |
| bool | get_last_file_size (infinint &num) const |
| void | disable_natural_destruction () |
| void | enable_natural_destruction () |
| bool | is_an_old_start_end_archive () const |
| const label & | get_internal_name_used () const |
| const label & | get_data_name () const |
| const entrepot * | get_entrepot () const |
| const infinint & | get_first_slice_header_size () const |
| get the first slice header | |
| const infinint & | get_non_first_slice_header_size () const |
| get the non first slice header | |
Public Member Functions inherited from libdar::generic_file | |
| generic_file (gf_mode m) | |
| main constructor | |
| generic_file (const generic_file &ref) | |
| copy constructor | |
| virtual | ~generic_file () throw (Ebug) |
| virtual destructor, this let inherited destructor to be called even from a generic_file pointer to an inherited class | |
| void | terminate () const |
| destructor-like call, except that it is allowed to throw exceptions | |
| const generic_file & | operator= (const generic_file &ref) |
| assignment operator | |
| gf_mode | get_mode () const |
| retreive the openning mode for this object | |
| virtual void | read_ahead (const infinint &amount) |
| void | ignore_read_ahead (bool mode) |
| U_I | read (char *a, U_I size) |
| read data from the generic_file More... | |
| void | write (const char *a, U_I size) |
| write data to the generic_file More... | |
| 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::on_pool | |
| void * | operator new (size_t n_byte) |
| void * | operator new (size_t n_byte, const std::nothrow_t ¬hrow_value) |
| void * | operator new[] (size_t n_byte) |
| void * | operator new[] (size_t n_byte, const std::nothrow_t ¬hrow_value) |
| void * | operator new (size_t n_byte, memory_pool *p) |
| void * | operator new[] (size_t n_byte, memory_pool *p) |
| void | operator delete (void *ptr, memory_pool *p) |
| this operator is called by the compiler if an exception is throw from the constructor of the allocated object | |
| void | operator delete[] (void *ptr, memory_pool *p) |
| this operator is called by the compiler if an exception is throw from the constructor of the allocated objects | |
| void | operator delete (void *ptr) |
| this is the usual delete operator, modified to handle allocated objects allocated on a memory pool or not | |
| void | operator delete[] (void *ptr) |
| this is the usual delete[] operator, modified to handle allocated objects allocated on a memory pool or not | |
Protected Member Functions | |
| void | inherited_read_ahead (const infinint &amount) |
| U_I | inherited_read (char *a, U_I size) |
| implementation of read() operation More... | |
| void | inherited_write (const char *a, U_I size) |
| implementation of the write() operation More... | |
| void | inherited_sync_write () |
| write down any pending data More... | |
| void | inherited_flush_read () |
| void | inherited_terminate () |
| 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 |
Protected Member Functions inherited from libdar::on_pool | |
| memory_pool * | get_pool () const |
| template<class T > | |
| void | meta_new (T *&ptr, size_t num) |
| template<class T > | |
| void | meta_delete (T *ptr) |
Protected Member Functions inherited from libdar::mem_ui | |
| user_interaction & | get_ui () const |
| get access to the user_interaction cloned object More... | |
| mem_ui (const user_interaction &dialog) | |
| constructor More... | |
| mem_ui (user_interaction *dialog) | |
| mem_ui (const mem_ui &ref) | |
| the copy constructor More... | |
| virtual | ~mem_ui () throw (Ebug) |
| destructor More... | |
| const mem_ui & | operator= (const mem_ui &ref) |
| assignement operator More... | |
Additional Inherited Members | |
Public Types inherited from libdar::generic_file | |
| enum | skippability { skip_backward, skip_forward } |
Sar class stands for Segmentation And Reassembly class.
sar is used as a normal file but given some parameters at construction time the object will split the data in several files of given size (aka slices) sar uses a header to identify slices in a given set and tie slices of different sets At reading time sar transparently read data from the different slices.
| libdar::sar::sar | ( | const user_interaction & | dialog, |
| const std::string & | base_name, | ||
| const std::string & | extension, | ||
| const entrepot & | where, | ||
| bool | by_the_end, | ||
| const infinint & | x_min_digits, | ||
| bool | lax = false, |
||
| const std::string & | execute = "" |
||
| ) |
this constructor reads data from a set of slices
| [in] | dialog | is for user interation (such a requesting a slice and pausing between slices) |
| [in] | base_name | is the basename of all slices of the set (it will be added the ".<slice numer>.extension" to form a filename |
| [in] | extension | is the extension of slice's filenames |
| [in] | where | defines where to store or where are stored slices |
| [in] | by_the_end | if true dar will try to open the slice set starting from the last slice else it will try starting from the first |
| [in] | x_min_digits | is the minimum number of digits the slices number is stored with in the filename |
| [in] | lax | if set to true will try workaround problems that would otherwise lead the operation to fail |
| [in] | execute | is the command to execute before trying to open each slice for reading |
| libdar::sar::sar | ( | const user_interaction & | dialog, |
| gf_mode | open_mode, | ||
| const std::string & | base_name, | ||
| const std::string & | extension, | ||
| const infinint & | file_size, | ||
| const infinint & | first_file_size, | ||
| bool | x_warn_overwrite, | ||
| bool | x_allow_overwrite, | ||
| const infinint & | pause, | ||
| const entrepot & | where, | ||
| const label & | internal_name, | ||
| const label & | data_name, | ||
| bool | force_permission, | ||
| U_I | permission, | ||
| hash_algo | x_hash, | ||
| const infinint & | x_min_digits, | ||
| bool | format_07_compatible, | ||
| const std::string & | execute = "" |
||
| ) |
this constructor creates a new set of slices
| [in,out] | dialog | is used for user interaction |
| [in] | open_mode | read_write or write_only is accepted only |
| [in] | base_name | is the slice set base name |
| [in] | extension | is the slices extension |
| [in] | file_size | is the size of slices (in byte) |
| [in] | first_file_size | is the size of the first slice (in byte) or set it to zero if it has to be equal to other slice's size |
| [in] | x_warn_overwrite | if set to true, a warning will be issued before overwriting a slice |
| [in] | x_allow_overwrite | if set to false, no slice overwritting will be allowed |
| [in] | pause | if set to zero no pause will be done between slice creation. If set to 1 a pause between each slice will be done. If set to N a pause each N slice will be done. Pauses must be acknoledged by user for the process to continue |
| [in] | where | defines where to store the slices |
| [in] | internal_name | is a tag common to all slice of the archive |
| [in] | data_name | is a tag that has to be associated with the data. |
| [in] | force_permission | if true slice permission will be forced to the value given in the next argument |
| [in] | permission | value to use to set permission of slices |
| [in] | x_hash | defines whether a hash file has to be generated for each slice, and wich hash algorithm to use |
| [in] | x_min_digits | is the minimum number of digits the slices number is stored with in the filename |
| [in] | format_07_compatible | when set to true, creates a slice header in the archive format of version 7 instead of the highest version known |
| [in] | execute | is the command to execute after each slice creation (once it is completed) |
|
inlineprotectedvirtual |
reset internal engine, flush caches in order to read the data at current position
Implements libdar::generic_file.
|
protectedvirtual |
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.
|
protectedvirtual |
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.
|
inlineprotectedvirtual |
write down any pending data
Implements libdar::generic_file.
|
protectedvirtual |
destructor-like call, except that it is allowed to throw exceptions
Implements libdar::generic_file.
|
protectedvirtual |
implementation of the write() operation
| [in] | a | what data to write |
| [in] | size | amount of data to write |
Implements libdar::generic_file.
|
virtual |
skip at the absolute position
| [in] | pos | the offset in byte where next read/write operation must start |
Implements libdar::generic_file.
|
virtual |
whether the implementation is able to skip
Implements libdar::generic_file.
1.8.14