Disk ARchive
2.4.2
|
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 (user_interaction &dialog, const std::string &base_name, const std::string &extension, const path &dir, 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 | |
sar (user_interaction &dialog, 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 path &dir, const label &data_name, const std::string &slice_permission, const std::string &slice_user_ownership, const std::string &slice_group_ownership, hash_algo x_hash, const infinint &x_min_digits, const std::string &execute="") | |
this constructor creates a new set of slices | |
sar (const sar &ref) | |
the destructor | |
~sar () | |
destructor | |
bool | skip (const infinint &pos) |
skip at the absolute position | |
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 () |
get the current read/write position | |
infinint | get_sub_file_size () const |
infinint | get_first_sub_file_size () 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 |
Protected Member Functions | |
U_I | inherited_read (char *a, U_I size) |
implementation of read() operation | |
void | inherited_write (const char *a, U_I size) |
implementation of the write() operation | |
void | inherited_sync_write () |
write down any pending data | |
void | inherited_terminate () |
destructor-like call, except that it is allowed to throw exceptions |
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 | ( | user_interaction & | dialog, |
const std::string & | base_name, | ||
const std::string & | extension, | ||
const path & | dir, | ||
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] | dir | is the path 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 | ( | user_interaction & | dialog, |
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 path & | dir, | ||
const label & | data_name, | ||
const std::string & | slice_permission, | ||
const std::string & | slice_user_ownership, | ||
const std::string & | slice_group_ownership, | ||
hash_algo | x_hash, | ||
const infinint & | x_min_digits, | ||
const std::string & | execute = "" |
||
) |
this constructor creates a new set of slices
[in,out] | dialog | is used for user interaction |
[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] | dir | is the path where to store the slices |
[in] | data_name | is a tag that has to be associated with the data. |
[in] | slice_permission | permission to set for slice to be created (empty string for default behavior) |
[in] | slice_user_ownership | new slices' uid (empty string for default behavior) |
[in] | slice_group_ownership | new slices' gid (empty string for default behavior) |
[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] | execute | is the command to execute after each slice creation (once it is completed) |
U_I libdar::sar::inherited_read | ( | char * | a, |
U_I | size | ||
) | [protected, virtual] |
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.
void libdar::sar::inherited_sync_write | ( | ) | [inline, protected, virtual] |
write down any pending data
Implements libdar::generic_file.
void libdar::sar::inherited_terminate | ( | ) | [protected, virtual] |
destructor-like call, except that it is allowed to throw exceptions
Implements libdar::generic_file.
void libdar::sar::inherited_write | ( | const char * | a, |
U_I | size | ||
) | [protected, virtual] |
implementation of the write() operation
[in] | a | what data to write |
[in] | size | amount of data to write |
Implements libdar::generic_file.
bool libdar::sar::skip | ( | const infinint & | pos | ) | [virtual] |
skip at the absolute position
[in] | pos | the offset in byte where next read/write operation must start |
Implements libdar::generic_file.