Classes | |
class | archive |
the archive class realizes the most general operations on archives More... | |
class | cache |
the cache class implements a very basic read/write caching mechanisme More... | |
struct | entree_stats |
class | entree |
the root class from all other inherite for any entry in the catalogue More... | |
class | eod |
the End of Directory entry class More... | |
class | nomme |
the base class for all entry that have a name More... | |
class | inode |
the root class for all inode More... | |
class | file |
the plain file class More... | |
class | etiquette |
the hard link managment interface class (pure virtual class) More... | |
class | file_etiquette |
the hard linked plain file More... | |
class | hard_link |
the secondary reference to a hard linked inode More... | |
class | lien |
the symbolic link inode class More... | |
class | directory |
the directory inode class More... | |
class | device |
the special device root class More... | |
class | chardev |
the char device class More... | |
class | blockdev |
the block device class More... | |
class | tube |
the named pipe class More... | |
class | prise |
the Unix socket inode class More... | |
class | detruit |
the deleted file entry More... | |
class | ignored |
the present file to ignore (not to be recorded as deleted later) More... | |
class | ignored_dir |
the ignored directory class, to be promoted later as empty directory if needed More... | |
class | catalogue |
the catalogue class which gather all objects contained in a give archive More... | |
class | compressor |
compression class for gzip and bzip2 algorithms More... | |
class | blowfish |
blowfish implementation of encryption More... | |
class | data_tree |
the data_tree class stores presence of a given file in a set of archives More... | |
class | data_dir |
class | database |
the database class defines the dar_manager database More... | |
class | deci |
decimal class, convert infinint from and to decimal represention More... | |
class | defile |
the defile class keep trace of the real path of files while the flow in the filter routines More... | |
struct | ea_entry |
class | ea_attributs |
class | elastic |
the elastic buffer class More... | |
class | Egeneric |
this is the parent class of all exception classes. More... | |
class | Ememory |
exception used when memory has been exhausted More... | |
class | Ebug |
exception used to signal a bug. A bug is triggered when reaching some code that should never be reached More... | |
class | Einfinint |
exception used when arithmetic error is detected when operating on infinint More... | |
class | Elimitint |
exception used when a limitint overflow is detected, the maximum value of the limitint has been exceeded More... | |
class | Erange |
exception used to signal range error More... | |
class | Edeci |
exception used to signal convertion problem between infinint and string (decimal representation) More... | |
class | Efeature |
exception used when a requested feature is not (yet) implemented More... | |
class | Ehardware |
exception used when hardware problem is found More... | |
class | Euser_abort |
exception used to signal that the user has aborted the operation More... | |
class | Edata |
exception used when an error concerning the treated data has been met More... | |
class | Escript |
exception used when error the inter-slice user command returned an error code More... | |
class | Elibcall |
exception used to signal an error in the argument given to libdar call of the API More... | |
class | Ecompilation |
exception used when a requested fearture has not beed activated at compilation time More... | |
class | Ethread_cancel |
exception used when the thread libdar is running in is asked to stop More... | |
struct | etage |
the etage structure keep trace of directory contents More... | |
class | filesystem_hard_link_read |
keep trace of hard links when reading the filesystem More... | |
class | filesystem_backup |
make a flow sequence of inode to feed the backup filtering routing More... | |
class | filesystem_diff |
make a flow of inode to feed the difference filter routine More... | |
class | filesystem_hard_link_write |
keep trace of already written inodes to restore hard links More... | |
class | filesystem_restore |
receive the flow of inode from the restoration filtering routing and promotes theses to real filesystem objects More... | |
class | generic_file |
this is the interface class from which all other data transfer classes inherit More... | |
class | fichier |
this is a full implementation of a generic_file applied to a plain file More... | |
class | contextual |
the contextual class adds the information of phases in the generic_file More... | |
struct | header |
struct | header_version |
class | limitint |
limitint template class More... | |
class | mask |
the generic class, parent of all masks More... | |
class | bool_mask |
it matches all files or no files at all More... | |
class | simple_mask |
matches as done on shell command lines (see "man 7 glob") More... | |
class | regular_mask |
matches regular expressions (see "man 7 regex") More... | |
class | not_mask |
negation of another mask More... | |
class | et_mask |
makes an *AND* operator between two or more masks More... | |
class | ou_mask |
makes the *OR* operator between two or more masks More... | |
class | simple_path_mask |
string matches if it is subdir of mask or mask is a subdir of expression More... | |
class | same_path_mask |
matches if string is exactly the given mask (no wilde card expression) More... | |
class | exclude_dir_mask |
matches if string is the given string or a sub directory of it More... | |
class | mask_list |
the mask_list class, matches string that are present in a given file More... | |
class | null_file |
the null_file class implements the /dev/null behavior More... | |
class | path |
the class path is here to manipulate paths in the Unix notation: using'/' More... | |
class | infinint |
the arbitrary large positive integer class More... | |
class | sar |
class | trivial_sar |
class | scrambler |
scrambler is a very weak encryption scheme More... | |
class | statistics |
class | storage |
arbitrary large storage structure More... | |
class | string_file |
class | terminateur |
terminateur class indicates the location of the beginning of the catalogue More... | |
class | thread_cancellation |
class to be used as parent to provide checkpoints to inherited classes More... | |
class | tronc |
make a segment of a generic_file appear like a real generic_file More... | |
class | tronconneuse |
this is a partial implementation of the generic_file interface to encrypt/decrypt data block by block. More... | |
class | tuyau |
class | user_interaction |
This is a pure virtual class that is used by libdar when interaction with the user is required. More... | |
class | user_interaction_callback |
full implemented class for user_interaction based on callback functions. More... | |
class | wrapperlib |
this class encapsulates calls to libz or libbz2 More... | |
class | zapette |
zapette emulate a file that is remotely controlled by slave_zapette More... | |
class | slave_zapette |
this class answers to order given by a zapette object More... | |
Typedefs | |
typedef U_16 | archive_num |
typedef char | crc [CRC_SIZE] |
typedef U_32 | magic_number |
typedef char | label [LABEL_SIZE] |
typedef char | dar_version [VERSION_SIZE] |
typedef unsigned char | int_tools_bitfield [8] |
Enumerations | |
enum | saved_status |
enum | compression { none = 'n', zip = 'p', gzip = 'z', bzip2 = 'y' } |
the different compression algorithm available More... | |
enum | crypto_algo { crypto_none, crypto_scrambling, crypto_blowfish } |
the different cypher available for encryption (strong or weak) More... | |
enum | elastic_direction |
enum | gf_mode { gf_read_only, gf_write_only, gf_read_write } |
generic_file openning modes More... | |
enum | wrapperlib_mode |
Functions | |
generic_file * | database_header_create (user_interaction &dialog, const std::string &filename, bool overwrite) |
create the header for a dar_manager database | |
generic_file * | database_header_open (user_interaction &dialog, const std::string &filename) |
read the header of a dar_manager database | |
std::ostream & | operator<< (std::ostream &ref, const infinint &arg) |
specific << operator to use infinint in std::ostream | |
void | ea_filesystem_read_ea (const std::string &chemin, ea_attributs &val, const mask &filter) |
read EA associated to a given file | |
bool | ea_filesystem_write_ea (const std::string &chemin, const ea_attributs &val, const mask &filter) |
overwrite some attribute to a given file's attribute list | |
void | ea_filesystem_clear_ea (const std::string &name, const mask &filter) |
remove all EA of a given file that match a given mask | |
bool | ea_filesystem_has_ea (const std::string &name) |
test the presence of EA for a given file | |
bool | ea_filesystem_has_ea (const std::string &name, const ea_attributs &list, const mask &filter) |
test the presence of EA for a given file | |
template<class T> | |
T | int_tools_rotate_right_one_bit (T v) |
template<class T> | |
T | int_tools_maxof_agregate (T unused) |
void | get_version (U_I &major, U_I &medium, U_I &minor) |
return the libdar version, and make libdar initialization (may throw Exceptions) | |
void | get_version_noexcept (U_I &major, U_I &medium, U_I &minor, U_16 &exception, std::string &except_msg) |
return the libdar version, and make libdar initialization (does not throw exceptions) | |
void | get_compile_time_features (bool &ea, bool &largefile, bool &nodump, bool &special_alloc, U_I &bits, bool &thread_safe, bool &libz, bool &libbz2, bool &libcrypto) |
return the options activated that have been activated at compilation time | |
archive * | open_archive_noexcept (user_interaction &dialog, const path &chem, const std::string &basename, const std::string &extension, crypto_algo crypto, const std::string &pass, U_32 crypto_size, const std::string &input_pipe, const std::string &output_pipe, const std::string &execute, bool info_details, U_16 &exception, std::string &except_msg) |
this is a wrapper around the archive constructor known as the "read" constructor | |
archive * | create_archive_noexcept (user_interaction &dialog, const path &fs_root, const path &sauv_path, archive *ref_arch, const mask &selection, const mask &subtree, const std::string &filename, const std::string &extension, bool allow_over, bool warn_over, bool info_details, const infinint &pause, bool empty_dir, compression algo, U_I compression_level, const infinint &file_size, const infinint &first_file_size, const mask &ea_mask, const std::string &execute, crypto_algo crypto, const std::string &pass, U_32 crypto_size, const mask &compr_mask, const infinint &min_compr_size, bool nodump, inode::comparison_fields what_to_check, const infinint &hourshift, bool empty, bool alter_atime, bool same_fs, bool snapshot, bool cache_directory_tagging, bool display_skipped, const infinint &fixed_date, statistics *progressive_report, U_16 &exception, std::string &except_msg) |
this is a wrapper around the archive constructor known as the "create" constructor | |
archive * | isolate_archive_noexcept (user_interaction &dialog, const path &sauv_path, archive *ref_arch, const std::string &filename, const std::string &extension, bool allow_over, bool warn_over, bool info_details, const infinint &pause, compression algo, U_I compression_level, const infinint &file_size, const infinint &first_file_size, const std::string &execute, crypto_algo crypto, const std::string &pass, U_32 crypto_size, bool empty, U_16 &exception, std::string &except_msg) |
this is a wrapper around the archive constructor known as the "isolate" constructor | |
archive * | merge_archive_noexcept (user_interaction &dialog, const path &sauv_path, archive *ref_arch1, archive *ref_arch2, const mask &selection, const mask &subtree, const std::string &filename, const std::string &extension, bool allow_over, bool warn_over, bool info_details, const infinint &pause, bool empty_dir, compression algo, U_I compression_level, const infinint &file_size, const infinint &first_file_size, const mask &ea_mask, const std::string &execute, crypto_algo crypto, const std::string &pass, U_32 crypto_size, const mask &compr_mask, const infinint &min_compr_size, bool empty, bool display_skipped, bool keep_compressed, statistics *progressive_report, U_16 &exception, std::string &except_msg) |
this is a wrapper around the archive constructor known as the "merging" constructor | |
void | close_archive_noexcept (archive *ptr, U_16 &exception, std::string &except_msg) |
this is wrapper around the archive destructor | |
statistics | op_extract_noexcept (user_interaction &dialog, archive *ptr, const path &fs_root, const mask &selection, const mask &subtree, bool allow_over, bool warn_over, bool info_details, bool detruire, bool only_more_recent, const mask &ea_mask, bool flat, inode::comparison_fields what_to_check, bool warn_remove_no_match, const infinint &hourshift, bool empty, bool ea_erase, bool display_skipped, statistics *progressive_report, U_16 &exception, std::string &except_msg) |
this is wrapper around the op_extract method | |
void | op_listing_noexcept (user_interaction &dialog, archive *ptr, bool info_details, archive::listformat list_mode, const mask &selection, bool filter_unsaved, U_16 &exception, std::string &except_msg) |
this is wrapper around the op_listing method | |
statistics | op_diff_noexcept (user_interaction &dialog, archive *ptr, const path &fs_root, const mask &selection, const mask &subtree, bool info_details, const mask &ea_mask, inode::comparison_fields what_to_check, bool alter_atime, bool display_skipped, statistics *progressive_report, U_16 &exception, std::string &except_msg) |
this is wrapper around the op_diff method | |
statistics | op_test_noexcept (user_interaction &dialog, archive *ptr, const mask &selection, const mask &subtree, bool info_details, bool display_skipped, statistics *progressive_report, U_16 &exception, std::string &except_msg) |
this is wrapper around the op_test method | |
bool | get_children_of_noexcept (user_interaction &dialog, archive *ptr, const std::string &dir, U_16 &exception, std::string &except_msg) |
this is wrapper around the get_children_of method | |
char * | libdar_str2charptr_noexcept (const std::string &x, U_16 &exception, std::string &except_msg) |
routine provided to convert std::string to char * | |
template<class B> | |
limitint< B > | operator+ (const limitint< B > &, const limitint< B > &) |
template<class B> | |
limitint< B > | operator+ (const limitint< B > &a, U_I b) |
template<class B> | |
limitint< B > | operator- (const limitint< B > &, const limitint< B > &) |
template<class B> | |
limitint< B > | operator- (const limitint< B > &a, U_I b) |
template<class B> | |
limitint< B > | operator * (const limitint< B > &, const limitint< B > &) |
template<class B> | |
limitint< B > | operator * (const limitint< B > &a, U_I b) |
template<class B> | |
limitint< B > | operator/ (const limitint< B > &, const limitint< B > &) |
template<class B> | |
limitint< B > | operator/ (const limitint< B > &a, U_I b) |
template<class B> | |
limitint< B > | operator% (const limitint< B > &, const limitint< B > &) |
template<class B> | |
limitint< B > | operator>> (const limitint< B > &a, U_32 bit) |
template<class B> | |
limitint< B > | operator>> (const limitint< B > &a, const limitint< B > &bit) |
template<class B> | |
limitint< B > | operator<< (const limitint< B > &a, U_32 bit) |
template<class B> | |
limitint< B > | operator<< (const limitint< B > &a, const limitint< B > &bit) |
template<class T> | |
void | euclide (T a, T b, T &q, T &r) |
template<class B> | |
void | euclide (limitint< B > a, U_I b, limitint< B > &q, limitint< B > &r) |
generic_file * | sar_tools_open_archive_fichier (user_interaction &dialog, const std::string &filename, bool allow_over, bool warn_over) |
create a container for a single sliced archive | |
generic_file * | sar_tools_open_archive_tuyau (user_interaction &dialog, S_I fd, gf_mode mode) |
create an container to write a archive to a pipe | |
char * | tools_str2charptr (std::string x) |
convert a string to a char * | |
void | tools_write_string (generic_file &f, const std::string &s) |
write a string to a file with a '\0' at then end | |
void | tools_read_string (generic_file &f, std::string &s) |
read a string from a file expecting it to terminate by '\0' | |
void | tools_write_string_all (generic_file &f, const std::string &s) |
write a string to a file, '\0' has no special meaning nor is added at the end | |
void | tools_read_string_size (generic_file &f, std::string &s, infinint taille) |
read a string if given size from a file '\0' has no special meaning | |
infinint | tools_get_filesize (const path &p) |
retrieve the size in byte of a file | |
infinint | tools_get_extended_size (std::string s, U_I base) |
convert the given string to infinint taking care of multiplication suffixes like k, M, T, etc. | |
char * | tools_extract_basename (const char *command_name) |
extracts the basename of a file (removing path part) | |
void | tools_split_path_basename (const char *all, path *&chemin, std::string &base) |
split a given full path in path part and basename part | |
void | tools_split_path_basename (const std::string &all, std::string &chemin, std::string &base) |
split a given full path in path part and basename part | |
void | tools_open_pipes (user_interaction &dialog, const std::string &input, const std::string &output, tuyau *&in, tuyau *&out) |
open a pair of tuyau objects encapsulating two named pipes. | |
void | tools_blocking_read (int fd, bool mode) |
set blocking/not blocking mode for reading on a file descriptor | |
std::string | tools_name_of_uid (U_16 uid) |
convert uid to name in regards to the current system's configuration | |
std::string | tools_name_of_gid (U_16 gid) |
convert gid to name in regards of the current system's configuration | |
std::string | tools_uword2str (U_16 x) |
convert unsigned word to string | |
std::string | tools_int2str (S_I x) |
convert integer to string | |
U_32 | tools_str2int (const std::string &x) |
convert an integer written in decimal notation to the corresponding value | |
std::string | tools_addspacebefore (std::string s, unsigned int expected_size) |
prepend spaces before the given string | |
std::string | tools_display_date (infinint date) |
convert a date in second to its human readable representation | |
infinint | tools_convert_date (const std::string &repres) |
convert a human readable date representation in number of second since the system reference date | |
void | tools_system (user_interaction &dialog, const std::vector< std::string > &argvector) |
wrapper to the "system" system call. | |
void | tools_write_vector (generic_file &f, const std::vector< std::string > &x) |
write a list of string to file | |
void | tools_read_vector (generic_file &f, std::vector< std::string > &x) |
read a list of string from a file | |
std::string | tools_concat_vector (const std::string &separator, const std::vector< std::string > &x) |
concatenate a vectors of strings in a single string | |
std::vector< std::string > | operator+ (std::vector< std::string > a, std::vector< std::string > b) |
concatenate two vectors | |
bool | tools_is_member (const std::string &val, const std::vector< std::string > &liste) |
test the presence of a value in a list | |
void | tools_display_features (user_interaction &dialog, bool ea, bool largefile, bool nodump, bool special_alloc, U_I bits, bool thread_safe, bool libz, bool libbz2, bool libcrypto) |
display the compilation time features of libdar | |
bool | is_equal_with_hourshift (const infinint &hourshift, const infinint &date1, const infinint &date2) |
test if two dates are equal taking care of a integer hour of difference | |
bool | tools_my_atoi (char *a, U_I &val) |
ascii to integer conversion | |
template<class T> | |
std::vector< T > | operator+= (std::vector< T > &a, const std::vector< T > &b) |
template function to add two vectors | |
const char * | tools_get_from_env (const char **env, char *clef) |
isolate the value of a given variable from the environment vector | |
void | tools_check_basename (user_interaction &dialog, const path &loc, std::string &base, const std::string &extension) |
does sanity checks on a slice name, check presence and detect whether the given basename is not rather a filename | |
std::string | tools_getcwd () |
get current working directory | |
std::string | tools_readlink (const char *root) |
returns the file pointed to by a symbolic link (or transparent if the file is not a symlink). | |
bool | tools_look_for (const char *argument, S_I argc, char *argv[]) |
test the presence of an argument | |
void | tools_noexcept_make_date (const std::string &chem, const infinint &last_acc, const infinint &last_mod) |
set dates of a given file, no exception thrown | |
void | tools_make_date (const std::string &chemin, infinint access, infinint modif) |
set dates of a given file, may throw exception | |
bool | tools_is_case_insensitive_equal (const std::string &a, const std::string &b) |
compare two string in case insensitive manner | |
void | tools_to_upper (char *nts) |
convert a string to upper case | |
void | tools_to_upper (std::string &r) |
convert a string to upper case | |
void | tools_remove_last_char_if_equal_to (char c, std::string &s) |
remove last character of a string is it equal to a given value | |
void | tools_read_range (const std::string &s, U_I &min, U_I &max) |
from a string with a range notation (min-max) extract the range values | |
std::string | tools_printf (char *format,...) |
make printf-like formating to a std::string | |
std::string | tools_vprintf (char *format, va_list ap) |
make printf-like formating to a std::string | |
bool | tools_do_some_files_match_mask (user_interaction &ui, const char *c_chemin, const char *file_mask) |
test the presence of files corresponding to a given mask in a directory | |
void | tools_unlink_file_mask (user_interaction &dialog, const char *c_chemin, const char *file_mask, bool info_details) |
remove files from a given directory | |
void | tools_avoid_slice_overwriting (user_interaction &dialog, const path &chemin, const std::string &x_file_mask, bool info_details, bool allow_overwriting, bool warn_overwriting, bool dry_run) |
prevents slice overwriting: check the presence of slice and if necessary ask the user if they can be removed | |
void | tools_add_elastic_buffer (generic_file &f, U_32 max_size) |
append an elastic buffer of given size to the file | |
bool | tools_are_on_same_filesystem (const std::string &file1, const std::string &file2) |
tells whether two files are on the same mounted filesystem | |
path | tools_relative2absolute_path (const path &src, const path &cwd) |
transform a relative path to an absolute one given the current directory value | |
void | tools_block_all_signals (sigset_t &old_mask) |
block all signals (based on POSIX sigprocmask) | |
void | tools_set_back_blocked_signals (sigset_t old_mask) |
unblock signals according to given mask | |
U_I | tools_count_in_string (const std::string &s, const char a) |
counts the number of a given char in a given string | |
infinint | tools_get_mtime (const std::string &s) |
returns the last modification date of the given file | |
std::vector< std::string > | tools_split_in_words (generic_file &f) |
read a file and split its contents in words | |
std::string | tools_build_regex_for_exclude_mask (const std::string &prefix, const std::string &relative_part) |
builds a regex from root directory and user provided regex to be applied to the relative path | |
Variables | |
const int | CRC_SIZE = 2 |
const unsigned int | LABEL_SIZE = 10 |
const char | FLAG_NON_TERMINAL = 'N' |
const char | FLAG_TERMINAL = 'T' |
const char | EXTENSION_NO = 'N' |
const char | EXTENSION_SIZE = 'S' |
const U_32 | SAUV_MAGIC_NUMBER = 123 |
const int | VERSION_FLAG_SAVED_EA_ROOT = 0x80 |
const int | VERSION_FLAG_SAVED_EA_USER = 0x40 |
const int | VERSION_FLAG_SCRAMBLED = 0x20 |
const int | VERSION_SIZE = 3 |
const U_I | LIBDAR_COMPILE_TIME_MAJOR = 4 |
libdar Major version defined at compilation time | |
const U_I | LIBDAR_COMPILE_TIME_MEDIUM = 0 |
libdar Medium version defined at compilation time | |
const U_I | LIBDAR_COMPILE_TIME_MINOR = 2 |
libdar Minor version defined at compilation time | |
const int | WR_OK = 0 |
const int | WR_MEM_ERROR = 1 |
const int | WR_VERSION_ERROR = 2 |
const int | WR_STREAM_ERROR = 3 |
const int | WR_DATA_ERROR = 4 |
const int | WR_NO_FLUSH = 5 |
const int | WR_BUF_ERROR = 6 |
const int | WR_STREAM_END = 7 |
const int | WR_FINISH = 8 |
generic_file* libdar::database_header_create | ( | user_interaction & | dialog, | |
const std::string & | filename, | |||
bool | overwrite | |||
) |
create the header for a dar_manager database
[in] | dialog | is used for user interaction |
[in] | filename | is the file's name to create/overwrite |
[in] | overwrite | set to true to allow file overwriting (else generates an error if file exists) |
generic_file* libdar::database_header_open | ( | user_interaction & | dialog, | |
const std::string & | filename | |||
) |
read the header of a dar_manager database
[in] | dialog | for user interaction |
[in] | filename | is the filename to read from |
void libdar::ea_filesystem_clear_ea | ( | const std::string & | name, | |
const mask & | filter | |||
) |
remove all EA of a given file that match a given mask
[in] | name | is the filename which EA must be altered |
[in] | filter | is a mask that defines which EA names have to be removed |
bool libdar::ea_filesystem_has_ea | ( | const std::string & | name, | |
const ea_attributs & | list, | |||
const mask & | filter | |||
) |
test the presence of EA for a given file
[in] | name | is the filename which EA presence must be check against |
[in] | list | list of attributes |
[in] | filter |
bool libdar::ea_filesystem_has_ea | ( | const std::string & | name | ) |
test the presence of EA for a given file
[in] | name | is the filename which EA presence must be check against |
void libdar::ea_filesystem_read_ea | ( | const std::string & | chemin, | |
ea_attributs & | val, | |||
const mask & | filter | |||
) |
read EA associated to a given file
[in] | chemin | is the path to the file to read attributes of |
[out] | val | is the resulting list of EA associated to this file |
[in] | filter | is a mask that defines which attributes names have to be considered only |
bool libdar::ea_filesystem_write_ea | ( | const std::string & | chemin, | |
const ea_attributs & | val, | |||
const mask & | filter | |||
) |
overwrite some attribute to a given file's attribute list
[in] | chemin | is the path of the file to write attribute to |
[in] | val | is a list of attribute amoung which a subset will be added to file's attribute list |
[in] | filter | a mask that define which attribute's names will be written and which will be ignored from the given list |