Disk ARchive
2.7.15
Full featured and portable backup and archiving tool
|
APlication Interface. More...
Files | |
file | archive.hpp |
the archive class is defined in this module | |
file | archive_aux.hpp |
set of datastructures used to interact with a catalogue object | |
file | archive_listing_callback.hpp |
definition of the user defined callback function used for archive listing | |
file | archive_num.hpp |
class storing the position of an archive inside a database | |
file | archive_options.hpp |
this file contains a set of classes used to transmit options to archive operation | |
file | archive_options_listing_shell.hpp |
this file contains shell_interaction options class for listing | |
file | archive_summary.hpp |
datastructure returned by archive::summary_data | |
file | archive_version.hpp |
class archive_version that rules which archive format to follow | |
file | compile_time_features.hpp |
nested namespace containing routines that give features activated at compile time | |
file | compression.hpp |
compression parameters for API | |
file | crit_action.hpp |
contains classes that let the user define the policy for overwriting files | |
file | criterium.hpp |
contains classes that let the user define the policy for overwriting files | |
file | crypto.hpp |
the crypto algoritm definition | |
file | database.hpp |
this file holds the database class definition | |
file | database_archives.hpp |
this file stores the list of archives a database has been built from. it is part of the database header | |
file | database_aux.hpp |
set of datastructures used to interact with a database object | |
file | database_listing_callback.hpp |
definition of the user defined callback function used for database listing | |
file | database_options.hpp |
this file holds the options for database operations | |
file | datetime.hpp |
this file contains the definition of class datetime that stores unix times in a portable way | |
file | deci.hpp |
manages the decimal representation of infinint | |
file | delta_sig_block_size.hpp |
structure used to define how to select block size for delta signature | |
file | entree_stats.hpp |
datastructure holding the nature of file present in a given archive | |
file | entrepot.hpp |
defines the entrepot interface. | |
file | entrepot_libcurl.hpp |
defines the implementation for remote filesystem entrepot using libcurl | |
file | entrepot_libcurl5.hpp |
defines the implementation for remote filesystem entrepot using libcurl | |
file | erreurs.hpp |
contains all the excetion class thrown by libdar | |
file | fsa_family.hpp |
filesystem specific attributes available families and fsa_scope definition | |
file | get_version.hpp |
routine to initialize libdar and manage its running threads | |
file | infinint.hpp |
switch module to limitint (32 ou 64 bits integers) or infinint | |
file | integers.hpp |
are defined here basic integer types that tend to be portable | |
file | libdar.hpp |
the main file of the libdar API definitions | |
file | libdar_slave.hpp |
API for dar_slave functionnality. | |
file | libdar_xform.hpp |
API for dar_xform functionnality. | |
file | limitint.hpp |
the reviewed implementation of infinint based on system limited integers | |
file | list_entry.hpp |
class of objects describing an entry in the archive, used by archive::get_children_in_table | |
file | mask.hpp |
here lies a collection of mask classes | |
file | mask_list.hpp |
here lies a mask that selects files present in a given list | |
file | mycurl_protocol.hpp |
datastructure defining the network protocols available for entrepot_libcurl class | |
file | path.hpp |
here is the definition of the path class | |
file | range.hpp |
class than provide a way to manipulate and represent range of integer numbers (infinint) | |
file | real_infinint.hpp |
the original infinint class implementation | |
file | secu_string.hpp |
this file contains the definition of secu_string class, a std::string like class but allocated in secure memory | |
file | shell_interaction.hpp |
user_interaction class used by default | |
file | shell_interaction_emulator.hpp |
wrapper class that given a user_interaction send it the shell_interaction formatted output | |
file | statistics.hpp |
class handling access to the data summary of treated files after and during each operation | |
file | thread_cancellation.hpp |
to be able to cancel libdar operation while running in a given thread. | |
file | user_interaction.hpp |
defines the interaction interface between libdar and users. | |
file | user_interaction_blind.hpp |
defines the interaction between libdar and a non communcant "blind" user | |
file | user_interaction_callback.hpp |
defines the interaction between libdar and the user based on callback functions | |
Classes | |
class | libdar::archive |
the archive class realizes the most general operations on archives More... | |
class | libdar::archive_num |
class archive_num stores the position of an archive inside a dar_manager database More... | |
class | libdar::archive_options_read |
class holding optional parameters used to read an existing archive More... | |
class | libdar::archive_options_create |
class holding optional parameters used to create an archive More... | |
class | libdar::archive_options_isolate |
class holding optional parameters used to isolate an existing archive More... | |
class | libdar::archive_options_merge |
class holding optional parameters used to proceed to the merge operation More... | |
class | libdar::archive_options_extract |
class holding optional parameters used to extract files from an existing archive More... | |
class | libdar::archive_options_listing |
class holding optional parameters used to list the contents of an existing archive More... | |
class | libdar::archive_options_test |
class holding optional parameters used to test the structure coherence of an existing archive More... | |
class | libdar::archive_options_repair |
class holding optional parameters used to create an archive More... | |
class | libdar::archive_options_listing_shell |
class holding optional shell specific parameters used to list the contents of an existing archive More... | |
class | libdar::archive_summary |
the archive_summary class provides information about a given archive More... | |
class | libdar::archive_version |
class archive_version manages the version of the archive format More... | |
class | libdar::archive::i_archive |
the archive::i_archive class implements the most general operations on archives More... | |
class | libdar::Enet_auth |
exception used to report authentication error More... | |
class | libdar::Esystem |
exception used to carry system error More... | |
class | libdar::Ethread_cancel |
exception used when the thread libdar is running in is asked to stop More... | |
class | libdar::Ecompilation |
exception used when a requested fearture has not beed activated at compilation time More... | |
class | libdar::Elibcall |
exception used to signal an error in the argument given to libdar call of the API More... | |
class | libdar::Escript |
exception used when error the inter-slice user command returned an error code More... | |
class | libdar::Edata |
exception used when an error concerning the treated data has been met More... | |
class | libdar::Euser_abort |
exception used to signal that the user has aborted the operation More... | |
class | libdar::Ehardware |
exception used when hardware problem is found More... | |
class | libdar::Efeature |
exception used when a requested feature is not (yet) implemented More... | |
class | libdar::Edeci |
exception used to signal convertion problem between infinint and string (decimal representation) More... | |
class | libdar::Erange |
exception used to signal range error More... | |
class | libdar::Elimitint |
exception used when a limitint overflow is detected, the maximum value of the limitint has been exceeded More... | |
class | libdar::Einfinint |
exception used when arithmetic error is detected when operating on infinint More... | |
class | libdar::Ebug |
exception used to signal a bug. A bug is triggered when reaching some code that should never be reached More... | |
class | libdar::Esecu_memory |
exception used when secure memory has been exhausted More... | |
class | libdar::Ememory |
exception used when memory has been exhausted More... | |
class | libdar::Egeneric |
this is the parent class of all exception classes. More... | |
class | libdar::entrepot_libcurl |
for managing archive into a remote repository More... | |
class | libdar::entrepot |
the Entrepot interface More... | |
struct | libdar::entree_stats |
holds the statistics contents of a catalogue More... | |
class | libdar::deci |
decimal class, convert infinint from and to decimal represention More... | |
class | libdar::datetime |
stores time information More... | |
class | libdar::database_used_options |
options for file "used" in archive More... | |
class | libdar::database_restore_options |
options for restoration from database More... | |
class | libdar::database_change_path_options |
options for changing a given archive's path More... | |
class | libdar::database_change_basename_options |
options for changing a given archive's basename More... | |
class | libdar::database_remove_options |
options to remove an archive from the base More... | |
class | libdar::database_add_options |
options to add an archive to base More... | |
class | libdar::database_dump_options |
options to write a database to file More... | |
class | libdar::database_open_options |
options to open a database More... | |
class | libdar::database_archives |
datastructure managing a member of the list of archives used by a database More... | |
class | libdar::database |
the database class defines the dar_manager database More... | |
struct | libdar::signator |
signator status More... | |
class | libdar::crit_and |
realises the AND operator More... | |
class | libdar::crit_not |
realises the negation of the criterium given in argument to its constructor More... | |
class | libdar::crit_same_type |
returns true if the two entries are of the same type (plain-file/char dev/block dev/named pipe/symlink/directory/unix socket) More... | |
class | libdar::crit_in_place_EA_saved |
returns true if the in place entry has its EA saved (not just marked as saved) in the archve of reference More... | |
class | libdar::crit_in_place_EA_bigger |
returns true if the space used by EA of the first entry is greater or equal to the space used by the EA of the second entry (no EA means 0 byte for EA storage) More... | |
class | libdar::crit_in_place_more_EA |
returns true if the first entry has more or even EA (in number not in size) than the second entry More... | |
class | libdar::crit_in_place_EA_more_recent_or_equal_to |
returns true if the EA of the first entry is more recent or equal to the fixed date given in argument to the constructor More... | |
class | libdar::crit_in_place_EA_more_recent |
returns true if the EA of the first entry is more recent or equal to the one of the second entry More... | |
class | libdar::crit_in_place_EA_present |
class | libdar::crit_same_inode_data |
returns true if both inputs are inode of the same type (file/pipe/device/...) and share inode information More... | |
class | libdar::crit_in_place_has_delta_sig |
return true if the entry has delta signature More... | |
class | libdar::crit_in_place_data_sparse |
return true if the entry is a sparse file (or hard linked sparse file) More... | |
class | libdar::crit_in_place_data_dirty |
return true if the entry is a dirty file (or hard linked dirty file) More... | |
class | libdar::crit_in_place_data_saved |
if the entry is not an inode the result is also true More... | |
class | libdar::crit_in_place_data_bigger |
returns true if the data of the first entry is bigger or equal to the one of the second entry More... | |
class | libdar::crit_in_place_data_more_recent_or_equal_to |
If the in_place entry is not an inode its date is considered equal to zero. Comparison is done on mtime. More... | |
class | libdar::crit_in_place_data_more_recent |
returns true if the data of the first entry is more recent or of the same date of the one of the second entry More... | |
class | libdar::crit_in_place_is_new_hardlinked_inode |
class | libdar::crit_in_place_is_hardlinked_inode |
returns true if the first entry is a inode with several hard links (whatever is the second entry) More... | |
class | libdar::crit_in_place_is_file |
returns true if the first entry is a plain file (whatever is the second) More... | |
class | libdar::crit_in_place_is_dir |
returns true if the first entry is a cat_directory (whatever is the second) More... | |
class | libdar::crit_in_place_is_inode |
returns true if the first entry is an inode (whatever is the second) More... | |
class | libdar::criterium |
the generic criterium class, parent of all criterium More... | |
class | libdar::crit_chain |
the crit_chain class sequences crit_actions up to full definition of the action More... | |
class | libdar::testing |
the testing class binds criterium to actions More... | |
class | libdar::crit_constant_action |
the basic constant action More... | |
class | libdar::crit_action |
the global action for overwriting More... | |
class | libdar::libdar_slave |
class implementing the dar_slave feature More... | |
class | libdar::libdar_xform |
class implementing the dar_xform feature More... | |
class | libdar::limitint< B > |
class | libdar::list_entry |
class | libdar::mask |
the generic class, parent of all masks More... | |
class | libdar::bool_mask |
boolean mask, either always true or false More... | |
class | libdar::simple_mask |
matches as done on shell command lines (see "man 7 glob") More... | |
class | libdar::regular_mask |
matches regular expressions (see "man 7 regex") More... | |
class | libdar::not_mask |
negation of another mask More... | |
class | libdar::et_mask |
makes an AND operator between two or more masks More... | |
class | libdar::ou_mask |
makes the OR operator between two or more masks More... | |
class | libdar::simple_path_mask |
string matches if it is subdir of mask or mask is a subdir of expression More... | |
class | libdar::same_path_mask |
matches if string is exactly the given mask (no wilde card expression) More... | |
class | libdar::exclude_dir_mask |
matches if string is the given constructor string or a sub directory of it More... | |
class | libdar::mask_list |
the mask_list class, matches string that are present in a given file More... | |
class | libdar::path |
the class path is here to manipulate paths in the Unix notation: using'/' More... | |
class | libdar::range |
stores a range of integers or a set of ranges More... | |
class | libdar::infinint |
the arbitrary large positive integer class More... | |
class | libdar::secu_string |
class secu_string More... | |
class | libdar::user_interaction |
This is a pure virtual class that is used by libdar when interaction with the user is required. More... | |
class | libdar::user_interaction_blind |
full implementation class for user_interaction, which shows nothing and assumes answer "no" to any question More... | |
class | libdar::user_interaction_callback |
full implemented class for user_interaction based on callback functions. More... | |
Macros | |
#define | SRC_BUG Ebug(__FILE__, __LINE__) |
#define | OPERATOR(OP) |
Typedefs | |
using | libdar::archive_listing_callback = void(*)(const std::string &the_path, const list_entry &entry, void *context) |
callback function type expected for archive::op_listing and archive::get_children_of() | |
using | libdar::database_archives_list = std::deque< database_archives > |
list of archives found in a database More... | |
using | libdar::database_listing_show_files_callback = void(*)(void *context, const std::string &filename, bool available_data, bool available_ea) |
called by the database::get_files() routine More... | |
using | libdar::database_listing_get_version_callback = void(*)(void *context, archive_num num, db_etat data_presence, bool has_data_date, datetime data, db_etat ea_presence, bool has_ea_date, datetime ea) |
called with the information of presence for an entry in archive number num More... | |
using | libdar::database_listing_statistics_callback = void(*)(void *context, U_I number, const infinint &data_count, const infinint &total_data, const infinint &ea_count, const infinint &total_ea) |
called with teh information of statistics for each archive in turn More... | |
using | libdar::fsa_scope = std::set< fsa_family > |
set of fsa families | |
using | libdar::limitint< B >::group = unsigned char[TG] |
using | libdar::infinint::group = unsigned char[TG] |
Enumerations | |
enum class | libdar::modified_data_detection { libdar::any_inode_change , libdar::mtime_size } |
how to detect data has changed when some fields More... | |
enum class | libdar::comparison_fields { libdar::all , libdar::ignore_owner , libdar::mtime , libdar::inode_type } |
how to consider file change during comparison and incremental backup More... | |
enum class | libdar::hash_algo { libdar::none , libdar::md5 , libdar::sha1 , libdar::sha512 , libdar::argon2 } |
hashing algorithm available More... | |
enum class | libdar::compression { libdar::none = 'n' , libdar::gzip = 'z' , libdar::bzip2 = 'y' , libdar::lzo = 'l' , libdar::xz = 'x' , libdar::lzo1x_1_15 = 'j' , libdar::lzo1x_1 = 'k' , libdar::zstd = 'd' , libdar::lz4 = 'q' } |
the different compression algorithm available More... | |
enum | libdar::over_action_data { libdar::data_preserve , libdar::data_overwrite , libdar::data_preserve_mark_already_saved , libdar::data_overwrite_mark_already_saved , libdar::data_remove , libdar::data_undefined , libdar::data_ask } |
the possible actions for overwriting data More... | |
enum | libdar::over_action_ea { libdar::EA_preserve , libdar::EA_overwrite , libdar::EA_clear , libdar::EA_preserve_mark_already_saved , libdar::EA_overwrite_mark_already_saved , libdar::EA_merge_preserve , libdar::EA_merge_overwrite , libdar::EA_undefined , libdar::EA_ask } |
the possible action for overwriting EA More... | |
enum class | libdar::crypto_algo { libdar::none , libdar::scrambling , libdar::blowfish , libdar::aes256 , libdar::twofish256 , libdar::serpent256 , libdar::camellia256 } |
the different cypher available for encryption (strong or weak) More... | |
enum class | libdar::db_lookup { libdar::found_present , libdar::found_removed , libdar::not_found , libdar::not_restorable } |
the available status of a lookup More... | |
enum class | libdar::db_etat { libdar::et_saved , libdar::et_patch , libdar::et_patch_unusable , libdar::et_inode , libdar::et_present , libdar::et_removed , libdar::et_absent } |
the status for a founded entry More... | |
enum | libdar::fsa_family { fsaf_hfs_plus , fsaf_linux_extX } |
FSA family. | |
enum | libdar::fsa_nature { fsan_unset , fsan_creation_date , fsan_append_only , fsan_compressed , fsan_no_dump , fsan_immutable , fsan_data_journaling , fsan_secure_deletion , fsan_no_tail_merging , fsan_undeletable , fsan_noatime_update , fsan_synchronous_directory , fsan_synchronous_update , fsan_top_of_dir_hierarchy } |
FSA nature. | |
enum | operation { oper_create , oper_isolate , oper_merge , oper_repair } |
enum | endian { big_endian , little_endian , not_initialized } |
enum | libdar::mycurl_protocol { libdar::proto_ftp , libdar::proto_sftp } |
libcurl protocols supported by libdar More... | |
enum | endian { big_endian , little_endian , not_initialized } |
Functions | |
libdar::archive::archive (const std::shared_ptr< user_interaction > &dialog, const path &chem, const std::string &basename, const std::string &extension, const archive_options_read &options) | |
this constructor opens an already existing archive (for reading) [this is the "read" constructor] More... | |
libdar::archive::archive (const std::shared_ptr< user_interaction > &dialog, const path &fs_root, const path &sauv_path, const std::string &filename, const std::string &extension, const archive_options_create &options, statistics *progressive_report) | |
this constuctor create an archive (full or differential) [this is the "create" constructor] More... | |
libdar::archive::archive (const std::shared_ptr< user_interaction > &dialog, const path &sauv_path, std::shared_ptr< archive > ref_arch1, const std::string &filename, const std::string &extension, const archive_options_merge &options, statistics *progressive_report) | |
this constructor builds an archive from two given archive [this is the "merge" constructor] More... | |
libdar::archive::archive (const std::shared_ptr< user_interaction > &dialog, const path &chem_src, const std::string &basename_src, const std::string &extension_src, const archive_options_read &options_read, const path &chem_dst, const std::string &basename_dst, const std::string &extension_dst, const archive_options_repair &options_repair) | |
this constructor create a new archive from a damaged one [this is the "repair" constructor] More... | |
libdar::archive::archive (const archive &ref)=delete | |
copy constructor (not implemented, throw an exception if called explicitely or implicitely) More... | |
libdar::archive::archive (archive &&ref)=delete | |
archive & | libdar::archive::operator= (const archive &ref)=delete |
archive & | libdar::archive::operator= (archive &&ref)=delete |
libdar::archive::~archive () | |
the destructor | |
statistics | libdar::archive::op_extract (const path &fs_root, const archive_options_extract &options, statistics *progressive_report) |
extraction of data from an archive More... | |
void | libdar::archive::summary () |
display a summary of the archive More... | |
archive_summary | libdar::archive::summary_data () |
same information as summary() but as broken out data | |
void | libdar::archive::op_listing (archive_listing_callback callback, void *context, const archive_options_listing &options) const |
listing of the archive contents More... | |
statistics | libdar::archive::op_diff (const path &fs_root, const archive_options_diff &options, statistics *progressive_report) |
archive comparison with filesystem More... | |
statistics | libdar::archive::op_test (const archive_options_test &options, statistics *progressive_report) |
test the archive integrity More... | |
void | libdar::archive::op_isolate (const path &sauv_path, const std::string &filename, const std::string &extension, const archive_options_isolate &options) |
this methodes isolates the catalogue of a the current archive into a separated archive More... | |
bool | libdar::archive::get_children_of (archive_listing_callback callback, void *context, const std::string &dir, bool fetch_ea=false) |
getting information about a given directory More... | |
const std::vector< list_entry > | libdar::archive::get_children_in_table (const std::string &dir, bool fetch_ea=false) const |
getting information about the given directory (alternative to get_children_of) More... | |
bool | libdar::archive::has_subdirectory (const std::string &dir) const |
returns true if the pointed directory has one or more subdirectories | |
const entree_stats | libdar::archive::get_stats () const |
retrieving statistics about archive contents | |
const std::list< signator > & | libdar::archive::get_signatories () const |
retrieving signature information about the archive | |
void | libdar::archive::init_catalogue () const |
void | libdar::archive::drop_all_filedescriptors () |
closes all filedescriptors and associated even when in sequential read mode More... | |
void | libdar::archive::set_to_unsaved_data_and_FSA () |
change all inode as unsaved (equal to differential backup with no change met) | |
U_64 | libdar::archive::get_first_slice_header_size () const |
get the first slice header More... | |
U_64 | libdar::archive::get_non_first_slice_header_size () const |
get the non first slice header More... | |
std::string | libdar::hash_algo_to_string (hash_algo algo) |
convert hash value to human readable string | |
bool | libdar::string_to_hash_algo (const std::string &arg, hash_algo &val) |
convert string to hash algorithm More... | |
U_I | libdar::hash_algo_to_gcrypt_hash (hash_algo algo) |
convert hash value to libgcrypt hash value | |
unsigned char | libdar::hash_algo_to_char (hash_algo algo) |
convert hash value to char value | |
hash_algo | libdar::char_to_hash_algo (unsigned char arg) |
convert char to hash_algo More... | |
libdar::archive_summary::archive_summary (const archive_summary &ref)=default | |
libdar::archive_summary::archive_summary (archive_summary &&ref) noexcept=default | |
archive_summary & | libdar::archive_summary::operator= (const archive_summary &ref)=default |
archive_summary & | libdar::archive_summary::operator= (archive_summary &&ref) noexcept=default |
const infinint & | libdar::archive_summary::get_slice_size () const |
const infinint & | libdar::archive_summary::get_first_slice_size () const |
const infinint & | libdar::archive_summary::get_last_slice_size () const |
const infinint & | libdar::archive_summary::get_ref_slice_size () const |
const infinint & | libdar::archive_summary::get_ref_first_slice_size () const |
const infinint & | libdar::archive_summary::get_slice_number () const |
const infinint & | libdar::archive_summary::get_archive_size () const |
const infinint & | libdar::archive_summary::get_catalog_size () const |
const infinint & | libdar::archive_summary::get_storage_size () const |
const infinint & | libdar::archive_summary::get_data_size () const |
const entree_stats & | libdar::archive_summary::get_contents () const |
std::string | libdar::archive_summary::get_edition () const |
std::string | libdar::archive_summary::get_compression_algo () const |
std::string | libdar::archive_summary::get_user_comment () const |
std::string | libdar::archive_summary::get_cipher () const |
std::string | libdar::archive_summary::get_asym () const |
bool | libdar::archive_summary::get_signed () const |
bool | libdar::archive_summary::get_tape_marks () const |
std::string | libdar::archive_summary::get_in_place () const |
void | libdar::archive_summary::set_slice_size (const infinint &arg) |
void | libdar::archive_summary::set_first_slice_size (const infinint &arg) |
void | libdar::archive_summary::set_last_slice_size (const infinint &arg) |
void | libdar::archive_summary::set_ref_slice_size (const infinint &arg) |
void | libdar::archive_summary::set_ref_first_slice_size (const infinint &arg) |
void | libdar::archive_summary::set_slice_number (const infinint &arg) |
void | libdar::archive_summary::set_archive_size (const infinint &arg) |
void | libdar::archive_summary::set_catalog_size (const infinint &arg) |
void | libdar::archive_summary::set_storage_size (const infinint &arg) |
void | libdar::archive_summary::set_data_size (const infinint &arg) |
void | libdar::archive_summary::set_contents (const entree_stats &arg) |
void | libdar::archive_summary::set_edition (const std::string &arg) |
void | libdar::archive_summary::set_compression_algo (const std::string &arg) |
void | libdar::archive_summary::set_user_comment (const std::string &arg) |
void | libdar::archive_summary::set_cipher (const std::string &arg) |
void | libdar::archive_summary::set_asym (const std::string &arg) |
void | libdar::archive_summary::set_signed (bool arg) |
void | libdar::archive_summary::set_tape_marks (bool arg) |
void | libdar::archive_summary::set_in_place (const std::string &arg) |
void | libdar::archive_summary::clear () |
const archive_version | libdar::empty_archive_version () |
compression | libdar::char2compression (char a) |
convert a char as stored in archive to its compression value | |
bool | libdar::char2compression_mode (char a) |
char | libdar::compression2char (compression c, bool per_block=false) |
convert a compression value to a char for storing in archive | |
std::string | libdar::compression2string (compression c) |
convert a compression to its string representation | |
compression | libdar::string2compression (const std::string &a) |
convert a string representing a compression algorithm to its enum compression value | |
std::string | libdar::crypto_algo_2_string (crypto_algo algo) |
convert crypto algo to readable std::string | |
char | libdar::crypto_algo_2_char (crypto_algo a) |
convert crypto algo to char | |
crypto_algo | libdar::char_2_crypto_algo (char a) |
convert char to crypto algo | |
bool | libdar::same_signatories (const std::list< signator > &a, const std::list< signator > &b) |
return whether the two signators lists match | |
archive_version | libdar::db2archive_version (unsigned char db_version) |
converts dar_manager database version to dar archive version in order to properly read time fields | |
std::ostream & | libdar::operator<< (std::ostream &ref, const infinint &arg) |
specific << operator to use infinint in std::ostream More... | |
const char * | libdar::dar_gettext (const char *) |
a routine to change NLS domaine forth and back for inline routines | |
std::string | libdar::fsa_family_to_string (fsa_family f) |
convert fsa family to readable std::string | |
std::string | libdar::fsa_nature_to_string (fsa_nature n) |
convert fsa nature to readable std::string | |
fsa_scope | libdar::all_fsa_families () |
provides a scope containing all FSA families | |
infinint | libdar::fsa_scope_to_infinint (const fsa_scope &val) |
convert an fsa scope to infinint | |
fsa_scope | libdar::infinint_to_fsa_scope (const infinint &ref) |
convert an infinint to fsa_scape | |
std::string | libdar::fsa_scope_to_string (bool saved, const fsa_scope &scope) |
convert an fsa scope to readable string | |
void | libdar::get_version (U_I &major, U_I &medium, U_I &minor, bool init_libgcrypt=true) |
return the libdar version, and make libdar initialization (may throw Exceptions) More... | |
void | libdar::get_version (U_I &major, U_I &medium, U_I &minor, bool init_libgcrypt, bool init_gpgme) |
returns the libdar version and make libdar initialization (may throw Exceptions) More... | |
void | libdar::get_version (bool init_libgcrypt=true) |
this method is to be used when you don't want to bother with major, medium and minor | |
void | libdar::close_and_clean () |
libdar::archive::i_archive::i_archive (const std::shared_ptr< user_interaction > &dialog, const path &chem, const std::string &basename, const std::string &extension, const archive_options_read &options) | |
this constructor opens an already existing archive (for reading) [this is the "read" constructor] | |
libdar::archive::i_archive::i_archive (const std::shared_ptr< user_interaction > &dialog, const path &fs_root, const path &sauv_path, const std::string &filename, const std::string &extension, const archive_options_create &options, statistics *progressive_report) | |
this constuctor create an archive (full or differential) [this is the "create" constructor] | |
libdar::archive::i_archive::i_archive (const std::shared_ptr< user_interaction > &dialog, const path &sauv_path, std::shared_ptr< archive > ref_arch1, const std::string &filename, const std::string &extension, const archive_options_merge &options, statistics *progressive_report) | |
this constructor builds an archive from two given archive [this is the "merge" constructor] | |
libdar::archive::i_archive::i_archive (const std::shared_ptr< user_interaction > &dialog, const path &chem_src, const std::string &basename_src, const std::string &extension_src, const archive_options_read &options_read, const path &chem_dst, const std::string &basename_dst, const std::string &extension_dst, const archive_options_repair &options_repair) | |
this constructor create a new archive from a damaged one [this is the "repair" constructor] | |
libdar::archive::i_archive::i_archive (const i_archive &ref)=delete | |
copy constructor (not implemented, throw an exception if called explicitely or implicitely) | |
libdar::archive::i_archive::i_archive (i_archive &&ref)=delete | |
i_archive & | libdar::archive::i_archive::operator= (const i_archive &ref)=delete |
i_archive & | libdar::archive::i_archive::operator= (i_archive &&ref)=delete |
libdar::archive::i_archive::~i_archive () | |
the destructor | |
statistics | libdar::archive::i_archive::op_extract (const path &fs_root, const archive_options_extract &options, statistics *progressive_report) |
extraction of data from an archive | |
void | libdar::archive::i_archive::summary () |
display a summary of the archive | |
archive_summary | libdar::archive::i_archive::summary_data () |
same information as summary() but as broken out data | |
void | libdar::archive::i_archive::op_listing (archive_listing_callback callback, void *context, const archive_options_listing &options) const |
listing of the archive contents | |
statistics | libdar::archive::i_archive::op_diff (const path &fs_root, const archive_options_diff &options, statistics *progressive_report) |
archive comparison with filesystem | |
statistics | libdar::archive::i_archive::op_test (const archive_options_test &options, statistics *progressive_report) |
test the archive integrity | |
void | libdar::archive::i_archive::op_isolate (const path &sauv_path, const std::string &filename, const std::string &extension, const archive_options_isolate &options) |
this methodes isolates the catalogue of a the current archive into a separated archive | |
bool | libdar::archive::i_archive::get_children_of (archive_listing_callback callback, void *context, const std::string &dir, bool fetch_ea=false) |
getting information about a given directory | |
const std::vector< list_entry > | libdar::archive::i_archive::get_children_in_table (const std::string &dir, bool fetch_ea=false) const |
getting information about the given directory (alternative to get_children_of) | |
bool | libdar::archive::i_archive::has_subdirectory (const std::string &dir) const |
returns true if the pointed directory has one or more subdirectories | |
const entree_stats | libdar::archive::i_archive::get_stats () const |
retrieving statistics about archive contents | |
const std::list< signator > & | libdar::archive::i_archive::get_signatories () const |
retrieving signature information about the archive | |
void | libdar::archive::i_archive::init_catalogue () const |
const catalogue & | libdar::archive::i_archive::get_catalogue () const |
gives access to internal catalogue (not to be used from the API) | |
void | libdar::archive::i_archive::drop_all_filedescriptors () |
closes all filedescriptors and associated even when in sequential read mode | |
void | libdar::archive::i_archive::set_to_unsaved_data_and_FSA () |
change all inode as unsaved (equal to differential backup with no change met) | |
bool | libdar::archive::i_archive::get_catalogue_slice_layout (slice_layout &slicing) const |
returns the slice layout of the archive, or of the archive of reference in case of isolated catalogue | |
U_64 | libdar::archive::i_archive::get_first_slice_header_size () const |
get the first slice header | |
U_64 | libdar::archive::i_archive::get_non_first_slice_header_size () const |
get the non first slice header | |
void | libdar::archive::i_archive::free_mem () |
void | libdar::archive::i_archive::check_gnupg_signed () const |
const catalogue & | libdar::archive::i_archive::get_cat () const |
const header_version & | libdar::archive::i_archive::get_header () const |
bool | libdar::archive::i_archive::get_sar_param (infinint &sub_file_size, infinint &first_file_size, infinint &last_file_size, infinint &total_file_number) |
std::shared_ptr< entrepot > | libdar::archive::i_archive::get_entrepot () |
this method may return nullptr if no entrepot is used (pipes used for archive building, etc.) | |
infinint | libdar::archive::i_archive::get_level2_size () |
infinint | libdar::archive::i_archive::get_cat_size () const |
statistics | libdar::archive::i_archive::op_create_in (operation op, const path &fs_root, const std::shared_ptr< entrepot > &sauv_path_t, 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, bool display_treated, bool display_treated_only_dir, bool display_skipped, bool display_finished, const infinint &pause, bool empty_dir, compression algo, U_I compression_level, U_I compression_block_size, const infinint &file_size, const infinint &first_file_size, const mask &ea_mask, const std::string &execute, crypto_algo crypto, const secu_string &pass, U_32 crypto_size, const std::vector< std::string > &gnupg_recipients, const std::vector< std::string > &gnupg_signatories, const mask &compr_mask, const infinint &min_compr_size, bool nodump, const std::string &exclude_by_ea, const infinint &hourshift, bool empty, bool alter_atime, bool furtive_read_mode, const filesystem_ids &same_fs, comparison_fields what_to_check, bool snapshot, bool cache_directory_tagging, const infinint &fixed_date, const std::string &slice_permission, const infinint &repeat_count, const infinint &repeat_byte, bool add_marks_for_sequential_reading, bool security_check, const infinint &sparse_file_min_size, const std::string &user_comment, hash_algo hash, const infinint &slice_min_digits, const std::string &backup_hook_file_execute, const mask &backup_hook_file_mask, bool ignore_unknown, const fsa_scope &scope, U_I multi_threaded_crypto, U_I multi_threaded_compress, bool delta_signature, bool build_delta_sig, const mask &delta_mask, const infinint &delta_sig_min_size, bool delta_diff, bool zeroing_neg_date, const std::set< std::string > &ignored_symlinks, modified_data_detection mod_data_detect, const infinint &iteration_count, hash_algo kdf_hash, const delta_sig_block_size &sig_block_len, statistics *progressive_report) |
void | libdar::archive::i_archive::op_create_in_sub (operation op, const path &fs_root, const std::shared_ptr< entrepot > &sauv_path_t, catalogue *ref_cat1, const catalogue *ref_cat2, bool initial_pause, const mask &selection, const mask &subtree, const std::string &filename, const std::string &extension, bool allow_over, const crit_action &overwrite, bool warn_over, bool info_details, bool display_treated, bool display_treated_only_dir, bool display_skipped, bool display_finished, const infinint &pause, bool empty_dir, compression algo, U_I compression_level, U_I compression_block_size, const infinint &file_size, const infinint &first_file_size, const mask &ea_mask, const std::string &execute, crypto_algo crypto, const secu_string &pass, U_32 crypto_size, const std::vector< std::string > &gnupg_recipients, const std::vector< std::string > &gnupg_signatories, const mask &compr_mask, const infinint &min_compr_size, bool nodump, const std::string &exclude_by_ea, const infinint &hourshift, bool empty, bool alter_atime, bool furtive_read_mode, const filesystem_ids &same_fs, comparison_fields what_to_check, bool snapshot, bool cache_directory_tagging, bool keep_compressed, const infinint &fixed_date, const std::string &slice_permission, const infinint &repeat_count, const infinint &repeat_byte, bool decremental, bool add_marks_for_sequential_reading, bool security_check, const infinint &sparse_file_min_size, const std::string &user_comment, hash_algo hash, const infinint &slice_min_digits, const std::string &backup_hook_file_execute, const mask &backup_hook_file_mask, bool ignore_unknown, const fsa_scope &scope, U_I multi_threaded_crypto, U_I multi_threaded_compress, bool delta_signature, bool build_delta_sig, const mask &delta_mask, const infinint &delta_sig_min_size, bool delta_diff, bool zeroing_neg_date, const std::set< std::string > &ignored_symlinks, modified_data_detection mod_data_detect, const infinint &iteration_count, hash_algo kdf_hash, const delta_sig_block_size &sign_block_len, statistics *st_ptr) |
void | libdar::archive::i_archive::disable_natural_destruction () |
void | libdar::archive::i_archive::enable_natural_destruction () |
const label & | libdar::archive::i_archive::get_layer1_data_name () const |
const label & | libdar::archive::i_archive::get_catalogue_data_name () const |
bool | libdar::archive::i_archive::only_contains_an_isolated_catalogue () const |
true if the current archive only contains an isolated catalogue | |
void | libdar::archive::i_archive::check_against_isolation (bool lax) const |
throw Erange exception if the archive only contains an isolated catalogue | |
const cat_directory * | libdar::archive::i_archive::get_dir_object (const std::string &dir) const |
void | libdar::archive::i_archive::load_catalogue () |
libdar::limitint< B >::limitint (size_t a=0) | |
libdar::limitint< B >::limitint (proto_generic_file &x) | |
libdar::limitint< B >::limitint (const limitint &ref)=default | |
libdar::limitint< B >::limitint (limitint &&ref) noexcept=default | |
limitint & | libdar::limitint< B >::operator= (const limitint &ref)=default |
limitint & | libdar::limitint< B >::operator= (limitint &&ref) noexcept=default |
void | libdar::limitint< B >::dump (proto_generic_file &x) const |
void | libdar::limitint< B >::read (proto_generic_file &f) |
limitint & | libdar::limitint< B >::operator+= (const limitint &ref) |
limitint & | libdar::limitint< B >::operator-= (const limitint &ref) |
limitint & | libdar::limitint< B >::operator*= (const limitint &ref) |
template<class T > | |
limitint | libdar::limitint< B >::power (const T &exponent) const |
limitint & | libdar::limitint< B >::operator/= (const limitint &ref) |
limitint & | libdar::limitint< B >::operator%= (const limitint &ref) |
limitint & | libdar::limitint< B >::operator&= (const limitint &ref) |
limitint & | libdar::limitint< B >::operator|= (const limitint &ref) |
limitint & | libdar::limitint< B >::operator^= (const limitint &ref) |
limitint & | libdar::limitint< B >::operator>>= (U_32 bit) |
limitint & | libdar::limitint< B >::operator>>= (limitint bit) |
limitint & | libdar::limitint< B >::operator<<= (U_32 bit) |
limitint & | libdar::limitint< B >::operator<<= (limitint bit) |
limitint | libdar::limitint< B >::operator++ (int a) |
limitint | libdar::limitint< B >::operator-- (int a) |
limitint & | libdar::limitint< B >::operator++ () |
limitint & | libdar::limitint< B >::operator-- () |
U_32 | libdar::limitint< B >::operator% (U_32 arg) const |
template<class T > | |
void | libdar::limitint< B >::unstack (T &v) |
limitint | libdar::limitint< B >::get_storage_size () const |
unsigned char | libdar::limitint< B >::operator[] (const limitint &position) const |
bool | libdar::limitint< B >::is_zero () const |
bool | libdar::limitint< B >::operator< (const limitint &x) const |
bool | libdar::limitint< B >::operator== (const limitint &x) const |
bool | libdar::limitint< B >::operator> (const limitint &x) const |
bool | libdar::limitint< B >::operator<= (const limitint &x) const |
bool | libdar::limitint< B >::operator!= (const limitint &x) const |
bool | libdar::limitint< B >::operator>= (const limitint &x) const |
static bool | libdar::limitint< B >::is_system_big_endian () |
B | libdar::limitint< B >::debug_get_max () const |
B | libdar::limitint< B >::debug_get_bytesize () const |
B | libdar::limitint< B >::debug_get_field () const |
void | libdar::limitint< B >::build_from_file (proto_generic_file &x) |
template<class T > | |
void | libdar::limitint< B >::limitint_from (T a) |
template<class T > | |
T | libdar::limitint< B >::max_val_of (T x) |
template<class T > | |
void | libdar::limitint< B >::limitint_unstack_to (T &a) |
static void | libdar::limitint< B >::setup_endian () |
template<class B > | |
limitint< B > | libdar::operator+ (const limitint< B > &, const limitint< B > &) |
template<class B > | |
limitint< B > | libdar::operator+ (const limitint< B > &a, U_I b) |
template<class B > | |
limitint< B > | libdar::operator- (const limitint< B > &, const limitint< B > &) |
template<class B > | |
limitint< B > | libdar::operator- (const limitint< B > &a, U_I b) |
template<class B > | |
limitint< B > | libdar::operator* (const limitint< B > &, const limitint< B > &) |
template<class B > | |
limitint< B > | libdar::operator* (const limitint< B > &a, U_I b) |
template<class B > | |
limitint< B > | libdar::operator/ (const limitint< B > &, const limitint< B > &) |
template<class B > | |
limitint< B > | libdar::operator/ (const limitint< B > &a, U_I b) |
template<class B > | |
limitint< B > | libdar::operator% (const limitint< B > &, const limitint< B > &) |
template<class B > | |
limitint< B > | libdar::operator>> (const limitint< B > &a, U_32 bit) |
template<class B > | |
limitint< B > | libdar::operator>> (const limitint< B > &a, const limitint< B > &bit) |
template<class B > | |
limitint< B > | libdar::operator<< (const limitint< B > &a, U_32 bit) |
template<class B > | |
limitint< B > | libdar::operator<< (const limitint< B > &a, const limitint< B > &bit) |
template<class B > | |
limitint< B > | libdar::operator& (const limitint< B > &a, U_32 bit) |
template<class B > | |
limitint< B > | libdar::operator& (const limitint< B > &a, const limitint< B > &bit) |
template<class B > | |
limitint< B > | libdar::operator| (const limitint< B > &a, U_32 bit) |
template<class B > | |
limitint< B > | libdar::operator| (const limitint< B > &a, const limitint< B > &bit) |
template<class B > | |
limitint< B > | libdar::operator^ (const limitint< B > &a, U_32 bit) |
template<class B > | |
limitint< B > | libdar::operator^ (const limitint< B > &a, const limitint< B > &bit) |
template<class T > | |
void | libdar::euclide (T a, T b, T &q, T &r) |
template<class B > | |
void | libdar::euclide (limitint< B > a, U_I b, limitint< B > &q, limitint< B > &r) |
mycurl_protocol | libdar::string_to_mycurl_protocol (const std::string &arg) |
extract mycurl_protocol from a given URL | |
libdar::infinint::infinint (size_t a=0) | |
libdar::infinint::infinint (proto_generic_file &x) | |
read an infinint from a file | |
libdar::infinint::infinint (const infinint &ref) | |
libdar::infinint::infinint (infinint &&ref) noexcept | |
infinint & | libdar::infinint::operator= (const infinint &ref) |
infinint & | libdar::infinint::operator= (infinint &&ref) noexcept |
void | libdar::infinint::dump (proto_generic_file &x) const |
void | libdar::infinint::read (proto_generic_file &f) |
infinint & | libdar::infinint::operator+= (const infinint &ref) |
infinint & | libdar::infinint::operator-= (const infinint &ref) |
infinint & | libdar::infinint::operator*= (unsigned char arg) |
infinint & | libdar::infinint::operator*= (const infinint &ref) |
template<class T > | |
infinint | libdar::infinint::power (const T &exponent) const |
infinint & | libdar::infinint::operator/= (const infinint &ref) |
infinint & | libdar::infinint::operator%= (const infinint &ref) |
infinint & | libdar::infinint::operator&= (const infinint &ref) |
infinint & | libdar::infinint::operator|= (const infinint &ref) |
infinint & | libdar::infinint::operator^= (const infinint &ref) |
infinint & | libdar::infinint::operator>>= (U_32 bit) |
infinint & | libdar::infinint::operator>>= (infinint bit) |
infinint & | libdar::infinint::operator<<= (U_32 bit) |
infinint & | libdar::infinint::operator<<= (infinint bit) |
infinint | libdar::infinint::operator++ (int a) |
infinint | libdar::infinint::operator-- (int a) |
infinint & | libdar::infinint::operator++ () |
infinint & | libdar::infinint::operator-- () |
U_32 | libdar::infinint::operator% (U_32 arg) const |
template<class T > | |
void | libdar::infinint::unstack (T &v) |
convert infinint to standard interger types More... | |
infinint | libdar::infinint::get_storage_size () const noexcept |
it returns number of byte of information necessary to store the integer | |
unsigned char | libdar::infinint::operator[] (const infinint &position) const |
return in little endian order the information byte storing the integer | |
bool | libdar::infinint::is_zero () const |
static bool | libdar::infinint::is_system_big_endian () |
bool | libdar::infinint::is_valid () const noexcept |
void | libdar::infinint::build_from_file (proto_generic_file &x) |
void | libdar::infinint::reduce () |
void | libdar::infinint::copy_from (const infinint &ref) |
void | libdar::infinint::move_from (infinint &&ref) noexcept |
void | libdar::infinint::detruit () |
void | libdar::infinint::make_at_least_as_wider_as (const infinint &ref) |
template<class T > | |
void | libdar::infinint::infinint_from (T a) |
template<class T > | |
T | libdar::infinint::max_val_of (T x) |
template<class T > | |
void | libdar::infinint::infinint_unstack_to (T &a) |
template<class T > | |
T | libdar::infinint::modulo (T arg) const |
signed int | libdar::infinint::difference (const infinint &b) const |
static void | libdar::infinint::setup_endian () |
infinint | libdar::operator+ (const infinint &, const infinint &) |
infinint | libdar::operator- (const infinint &, const infinint &) |
infinint | libdar::operator* (const infinint &, const infinint &) |
infinint | libdar::operator* (const infinint &, const unsigned char) |
infinint | libdar::operator* (const unsigned char, const infinint &) |
infinint | libdar::operator/ (const infinint &, const infinint &) |
infinint | libdar::operator% (const infinint &, const infinint &) |
infinint | libdar::operator& (const infinint &a, const infinint &bit) |
infinint | libdar::operator| (const infinint &a, const infinint &bit) |
infinint | libdar::operator^ (const infinint &a, const infinint &bit) |
infinint | libdar::operator>> (const infinint &a, U_32 bit) |
infinint | libdar::operator>> (const infinint &a, const infinint &bit) |
infinint | libdar::operator<< (const infinint &a, U_32 bit) |
infinint | libdar::operator<< (const infinint &a, const infinint &bit) |
void | libdar::euclide (infinint a, const infinint &b, infinint &q, infinint &r) |
Variables | |
std::shared_ptr< i_archive > | libdar::archive::pimpl |
infinint | libdar::archive_summary::slice_size |
slice of the middle slice or zero if not applicable | |
infinint | libdar::archive_summary::first_slice_size |
slice of the first slices or zero if not applicable | |
infinint | libdar::archive_summary::last_slice_size |
slice of the last slice or zero if not applicable | |
infinint | libdar::archive_summary::ref_slice_size |
slice of the slice of the archive of reference | |
infinint | libdar::archive_summary::ref_first_slice_size |
slice of the first slice of the archive of reference | |
infinint | libdar::archive_summary::slice_number |
number of slices composing the archive of zero if unknown | |
infinint | libdar::archive_summary::archive_size |
total size of the archive | |
infinint | libdar::archive_summary::catalog_size |
catalogue size if known, zero if not | |
infinint | libdar::archive_summary::storage_size |
amount of byte used to store (compressed/encrypted) data | |
infinint | libdar::archive_summary::data_size |
amount of data saved (once uncompressed/unciphered) | |
entree_stats | libdar::archive_summary::contents |
nature of saved files | |
std::string | libdar::archive_summary::edition |
archive format | |
std::string | libdar::archive_summary::algo_zip |
compression algorithm | |
std::string | libdar::archive_summary::user_comment |
user comment | |
std::string | libdar::archive_summary::cipher |
encryption algorithm | |
std::string | libdar::archive_summary::asym |
asymetrical encryption | |
bool | libdar::archive_summary::is_signed |
whether the archive is signed | |
bool | libdar::archive_summary::tape_marks |
whether the archive has tape marks (for sequential reading) | |
std::string | libdar::archive_summary::in_place |
in_place path empty string if absent | |
constexpr U_I | libdar::LIBDAR_COMPILE_TIME_MAJOR = 6 |
libdar Major version defined at compilation time | |
constexpr U_I | libdar::LIBDAR_COMPILE_TIME_MEDIUM = 7 |
libdar Medium version defined at compilation time | |
constexpr U_I | libdar::LIBDAR_COMPILE_TIME_MINOR = 3 |
libdar Minor version defined at compilation time | |
pile | libdar::archive::i_archive::stack |
the different layer through which the archive contents is read or wrote | |
header_version | libdar::archive::i_archive::ver |
information for the archive header | |
catalogue * | libdar::archive::i_archive::cat |
archive contents | |
infinint | libdar::archive::i_archive::local_cat_size |
size of the catalogue on disk | |
bool | libdar::archive::i_archive::exploitable |
is false if only the catalogue is available (for reference backup or isolation). | |
bool | libdar::archive::i_archive::lax_read_mode |
whether the archive has been openned in lax mode (unused for creation/merging/isolation) | |
bool | libdar::archive::i_archive::sequential_read |
whether the archive is read in sequential mode | |
std::list< signator > | libdar::archive::i_archive::gnupg_signed |
list of signature found in the archive (reading an existing archive) | |
slice_layout | libdar::archive::i_archive::slices |
slice layout, archive is not sliced <=> first_size or other_size fields are set to zero (in practice both are set to zero, but one being set is enought to determine the archive is not sliced) | |
B | libdar::limitint< B >::field |
static const int | libdar::limitint< B >::TG = 4 |
static const U_32 | libdar::limitint< B >::sizeof_field = sizeof(B) |
static endian | libdar::limitint< B >::used_endian = not_initialized |
static const U_I | libdar::limitint< B >::bytesize = sizeof(B) |
static const B | libdar::limitint< B >::max_value = ~B(0) > 0 ? ~B(0) : ~(B(1) << (bytesize*8 - 1)) |
static U_8 | libdar::limitint< B >::zeroed_field [ZEROED_SIZE] |
const std::string | libdar::PSEUDO_ROOT |
root name to use when archive operation does not use filesystem (archive testing for example) | |
const path | libdar::FAKE_ROOT |
root path object based on PSEUDO_ROOT | |
static constexpr int | libdar::infinint::TG = 4 |
storage * | libdar::infinint::field |
static endian | libdar::infinint::used_endian |
static U_8 | libdar::infinint::zeroed_field [ZEROED_SIZE] |
Friends | |
class | libdar::archive::database |
bool | libdar::infinint::operator< (const infinint &, const infinint &) |
bool | libdar::infinint::operator== (const infinint &, const infinint &) |
bool | libdar::infinint::operator> (const infinint &, const infinint &) |
bool | libdar::infinint::operator<= (const infinint &, const infinint &) |
bool | libdar::infinint::operator!= (const infinint &, const infinint &) |
bool | libdar::infinint::operator>= (const infinint &, const infinint &) |
void | libdar::infinint::euclide (infinint a, const infinint &b, infinint &q, infinint &r) |
APlication Interface.
This namespace gathers all symbols that may be accessed from an external program. Other symbols are not as much documented, and may change or be removed without any warning or backward compatibility support. So only use the function, macro, types, classes... defined as member of the API module in you external programs.
Please not that an API tutorial is also available and should be a starting point for using libdar, nevertheless, if you want to start from here, there is four main classes consider and several datastructures aside that they depend on:
#define OPERATOR | ( | OP | ) |
Definition at line 176 of file real_infinint.hpp.
using libdar::database_archives_list = typedef std::deque<database_archives> |
list of archives found in a database
Definition at line 75 of file database_archives.hpp.
using libdar::database_listing_get_version_callback = typedef void (*) (void *context, archive_num num, db_etat data_presence, bool has_data_date, datetime data, db_etat ea_presence, bool has_ea_date, datetime ea) |
called with the information of presence for an entry in archive number num
[in] | tag | is passed as is from the callback caller (database::get_version) |
[in] | num | number of the archive the information is taken from |
[in] | data_presence | status of the data for the requested file in that archive "num" |
[in] | has_data_date | when false the following argument (data) is meaningless |
[in] | data | modification date of the archive of the requested file in the archive "num" |
[in] | ea_presence | status of the EA for the requested file in the archive "num" |
[in] | has_ea_date | when false the following argument (ea) is meaningless |
[in] | ea | change date of the EA for the requested file in the archive "num" |
Definition at line 63 of file database_listing_callback.hpp.
using libdar::database_listing_show_files_callback = typedef void (*) (void *context, const std::string & filename, bool available_data, bool available_ea) |
called by the database::get_files() routine
[in] | tag | is passed as is from the callback caller (database::get_files) |
[in] | filename | the name of the new entry |
[in] | available_data | whether this entry has data saved in the requested archive |
[in] | available_ea | whether this entry has ea saved in the requested archive |
Definition at line 48 of file database_listing_callback.hpp.
using libdar::database_listing_statistics_callback = typedef void (*) (void *context, U_I number, const infinint & data_count, const infinint & total_data, const infinint & ea_count, const infinint & total_ea) |
called with teh information of statistics for each archive in turn
[in] | context | is passed as is from the callback caller (database::show_most_recent_stats) |
[in] | number | the archive number in the database |
[in] | data_count | amount of file which last version is located in this archive |
[in] | total_data | total number of file covered in this database |
[in] | ea_count | amount of EA which last version is located in this archive |
[in] | total_ea | total number of file that have EA covered by this database |
Definition at line 81 of file database_listing_callback.hpp.
|
strong |
how to consider file change during comparison and incremental backup
Definition at line 52 of file archive_aux.hpp.
|
strong |
the different compression algorithm available
values to be used as argument of libdar API calls
Definition at line 45 of file compression.hpp.
|
strong |
the different cypher available for encryption (strong or weak)
Definition at line 49 of file crypto.hpp.
|
strong |
the status for a founded entry
Definition at line 54 of file database_aux.hpp.
|
strong |
the available status of a lookup
Definition at line 40 of file database_aux.hpp.
|
strong |
hashing algorithm available
Enumerator | |
---|---|
none | no hashing algorithm |
md5 | MD5 algorithm. |
sha1 | SHA1 algorithm. |
sha512 | SHA-512 algorithm. |
argon2 | argon2 hash algo |
Definition at line 62 of file archive_aux.hpp.
|
strong |
how to detect data has changed when some fields
Enumerator | |
---|---|
any_inode_change | historical behavior, resave an inode on any metadata change |
mtime_size | default behavior since release 2.6.0 resave only if file size of mtime changed |
Definition at line 43 of file archive_aux.hpp.
libcurl protocols supported by libdar
Enumerator | |
---|---|
proto_ftp | FTP file transfer protocol. |
proto_sftp | SFTP Secure FTP (over ssh) |
Definition at line 48 of file mycurl_protocol.hpp.
the possible actions for overwriting data
Definition at line 46 of file crit_action.hpp.
the possible action for overwriting EA
define the action to apply to each EA entry (not to the EA set of a particular inode)
Definition at line 61 of file crit_action.hpp.
|
delete |
copy constructor (not implemented, throw an exception if called explicitely or implicitely)
libdar::archive::archive | ( | const std::shared_ptr< user_interaction > & | dialog, |
const path & | chem, | ||
const std::string & | basename, | ||
const std::string & | extension, | ||
const archive_options_read & | options | ||
) |
this constructor opens an already existing archive (for reading) [this is the "read" constructor]
[in,out] | dialog | for user- interaction |
[in] | chem | the path where to look for slices |
[in] | basename | the slices basename of the archive to read ("-" means standard input, and activates the output_pipe and input_pipe arguments) |
[in] | extension | the slice extension (should always be "dar") |
[in] | options | A set of option to use to read the archive |
libdar::archive::archive | ( | const std::shared_ptr< user_interaction > & | dialog, |
const path & | chem_src, | ||
const std::string & | basename_src, | ||
const std::string & | extension_src, | ||
const archive_options_read & | options_read, | ||
const path & | chem_dst, | ||
const std::string & | basename_dst, | ||
const std::string & | extension_dst, | ||
const archive_options_repair & | options_repair | ||
) |
this constructor create a new archive from a damaged one [this is the "repair" constructor]
[in,out] | dialog | for user interaction |
[in] | chem_src | the path where to look for slices of the archive to repair |
[in] | basename_src | the slices basename of the archive to repair |
[in] | extension_src | the slices extension of the archive to repair |
[in] | options_read | the set of option to use to read the archive repair |
[in] | chem_dst | the path where to write the repaired archive |
[in] | basename_dst | the slices basename of the repaired archive |
[in] | extension_dst | the slices extension of the repaired archive |
[in] | options_repair | the set of option to use to write the repaired archive |
libdar::archive::archive | ( | const std::shared_ptr< user_interaction > & | dialog, |
const path & | fs_root, | ||
const path & | sauv_path, | ||
const std::string & | filename, | ||
const std::string & | extension, | ||
const archive_options_create & | options, | ||
statistics * | progressive_report | ||
) |
this constuctor create an archive (full or differential) [this is the "create" constructor]
[in,out] | dialog | for user interaction |
[in] | fs_root | the filesystem to take as root for the backup |
[in] | sauv_path | the path where to create slices |
[in] | filename | base name of the slices. If "-" is given the archive will be produced in standard output |
[in] | extension | slices extension ("dar") |
[in] | options | optional parameters to use for the operation |
[out] | progressive_report | statistics about the operation, considering the treated files (nullptr can be given if you don't want to use this feature) |
libdar::archive::archive | ( | const std::shared_ptr< user_interaction > & | dialog, |
const path & | sauv_path, | ||
std::shared_ptr< archive > | ref_arch1, | ||
const std::string & | filename, | ||
const std::string & | extension, | ||
const archive_options_merge & | options, | ||
statistics * | progressive_report | ||
) |
this constructor builds an archive from two given archive [this is the "merge" constructor]
[in,out] | dialog | for user interaction |
[in] | sauv_path | the path where to create slices |
[in] | ref_arch1 | the first mandatory input archive (the second is optional and provided within the 'option' argument |
[in] | filename | base name of the slices. If "-" is given the archive will be produced in standard output |
[in] | extension | slices extension ("dar") |
[in] | options | optional parameters to be used for the operation |
[out] | progressive_report | statistics about the operation, considering the treated files (nullptr can be given if you don't want to use this feature) |
bool libdar::char2compression_mode | ( | char | a | ) |
return true if compression mode is per_block or false if this is a streamed compression
hash_algo libdar::char_to_hash_algo | ( | unsigned char | arg | ) |
convert char to hash_algo
void libdar::archive::drop_all_filedescriptors | ( | ) |
closes all filedescriptors and associated even when in sequential read mode
const std::vector<list_entry> libdar::archive::get_children_in_table | ( | const std::string & | dir, |
bool | fetch_ea = false |
||
) | const |
getting information about the given directory (alternative to get_children_of)
[in] | dir | relative path the directory to get information about, use empty string for root directory |
[in] | fetch_ea | whether to fetch Extended Attributes relative information in each returned list_entry (not possible in sequential read mode) |
bool libdar::archive::get_children_of | ( | archive_listing_callback | callback, |
void * | context, | ||
const std::string & | dir, | ||
bool | fetch_ea = false |
||
) |
getting information about a given directory
[in] | callback | callback function used to provide data in splitted field |
[in] | context | will be passed as first argument of the callback as is provided here |
[in] | dir | relative path the directory to get information about |
[in] | fetch_ea | whether to look for EA (not possible in sequential read mode) |
U_64 libdar::archive::get_first_slice_header_size | ( | ) | const |
get the first slice header
get_first_slice_header_size() and get_non_first_slice_header_size() can be used to translate from archive offset as reported by the list_entry::get_archive_offset_*() methods to file offset. This can be done by adding the first_slice_header_size to the archive offset, if the resulting number is larger than the first slice size, substract the it and add the non_first_slice header_size, and so on. This way you can determin the slice number to look into and the file offset in that file. Unit for all value is the byte (= octet).
U_64 libdar::archive::get_non_first_slice_header_size | ( | ) | const |
get the non first slice header
void libdar::get_version | ( | U_I & | major, |
U_I & | medium, | ||
U_I & | minor, | ||
bool | init_libgcrypt, | ||
bool | init_gpgme | ||
) |
returns the libdar version and make libdar initialization (may throw Exceptions)
[out] | major | the major number of the version |
[out] | medium | the medium number of the version |
[out] | minor | the minor number of the version |
[in] | init_libgcrypt | whether to initialize libgcrypt if not already done (not used if libcrypt is not linked with libdar) |
[in] | init_gpgme | whether to initialize gpgme (not used if gpgme is not linked with libdar) |
void libdar::get_version | ( | U_I & | major, |
U_I & | medium, | ||
U_I & | minor, | ||
bool | init_libgcrypt = true |
||
) |
return the libdar version, and make libdar initialization (may throw Exceptions)
It is mandatory to call this function (or another one of the get_version* family)
[out] | major | the major number of the version |
[out] | medium | the medium number of the version |
[out] | minor | the minor number of the version |
[in] | init_libgcrypt | whether to initialize libgcrypt if not already done (not used if libcrypt is not linked with libdar) |
void libdar::archive::init_catalogue | ( | ) | const |
necessary to get the catalogue fully loaded in memory in any situation in particular in sequential reading mode
void libdar::archive::i_archive::init_catalogue | ( | ) | const |
necessary to get the catalogue fully loaded in memory in any situation in particular in sequential reading mode
bool libdar::infinint::is_zero | ( | ) | const |
Referenced by libdar::cat_delta_signature::can_obtain_sig(), libdar::list_entry::get_archive_offset_for_data(), libdar::list_entry::get_archive_offset_for_EA(), libdar::list_entry::get_archive_offset_for_FSA(), libdar::list_entry::get_storage_size_for_data(), libdar::list_entry::get_storage_size_for_EA(), libdar::list_entry::get_storage_size_for_FSA(), and libdar::datetime::is_null().
|
private |
op | the filter operation to bind to |
fs_root | root of the filesystem to act on |
sauv_path_t | where to create the archive |
ref_cat1 | catalogue of the archive of reference, (cannot be nullptr if ref_cat2 is not nullptr) |
ref_cat2 | secondary catalogue used for merging, can be nullptr if not used |
initial_pause | whether we shall pause before starting the archive creation |
selection | filter on filenames |
subtree | filter on directory tree and filenames |
filename | basename of the archive to create |
extension | extension of the archives |
allow_over | whether to allow overwriting (of slices) |
overwrite | whether and how to allow overwriting (for files inside the archive) |
warn_over | whether to warn before overwriting |
info_details | whether to display detailed informations |
display_treated | whether to display treated files |
display_treated_only_dir | whether to only display current directory of treated files |
display_skipped | display skipped files for the operation |
display_finished | display space and compression ratio summary for each completed directory |
pause | whether to pause between slices |
empty_dir | whether to store excluded dir as empty directories |
algo | compression algorithm |
compression_level | compression level (range 1 to 9) |
compression_block_size | compression block size (0 for normal/legacy compression mode) |
file_size | slice size |
first_file_size | first slice size |
ea_mask | Extended Attribute to consider |
execute | Command line to execute between slices |
crypto | crypt algorithm |
pass | password ("" for onfly request of password) |
crypto_size | size of crypto blocks |
gnupg_recipients | list of email recipients to encrypted a randomly chosen key inside the archive |
gnupg_signatories | list of email recipients to use for signature |
compr_mask | files to compress |
min_compr_size | file size under which to not compress files |
nodump | whether to consider the "nodump" filesystem flag |
exclude_by_ea | if not empty the ea to use for inode exclusion from backup operation |
hourshift | hourshift (see man page -H option) |
empty | whether to make an "dry-run" execution |
alter_atime | whether to alter atime date (by opposition to ctime) when reading files |
furtive_read_mode | whether to neither alter atime nor ctome (if true alter_atime is ignored) |
same_fs | confin the files consideration to the given set of filesystem |
what_to_check | fields to consider wien comparing inodes (see comparison_fields enumeration) |
snapshot | make as if all file had not changed |
cache_directory_tagging | avoid saving directory which follow the cache directory tagging |
keep_compressed | keep file compressed when merging |
fixed_date | whether to ignore any archive of reference and only save file which modification is more recent that the given "fixed_date" date |
slice_permission | permissions of slices that will be created |
repeat_count | max number of retry to save a file that have changed while it was read for backup |
repeat_byte | max amount of wasted data used to save a file that have changed while it was read for backup |
decremental | in the merging context only, whether to build a decremental backup from the two archives of reference |
add_marks_for_sequential_reading | whether to add marks for sequential reading |
security_check | whether to check for ctime change with no reason (rootkit ?) |
sparse_file_min_size | starting which size to consider looking for holes in sparse files (0 for no detection) |
user_comment | user comment to put in the archive |
hash | whether to produce hash file, and which algo to use |
slice_min_digits | minimum digit for slice number |
backup_hook_file_execute | command to execute before and after files to backup |
backup_hook_file_mask | files elected to have a command executed before and after their backup |
ignore_unknown | whether to warn when an unknown inode type is met |
scope | FSA scope for the operation |
multi_threaded_crypto | whether libdar is allowed to spawn several thread to possibily work faster on multicore CPU |
multi_threaded_compress | neeed compression_block_size > 0 to use several threads for compression/decompression |
delta_signature | whether to calculate and store binary delta signature for each saved file |
build_delta_sig | whether to rebuild delta sig accordingly to delta_mask |
delta_mask | which files to consider delta signature for |
delta_sig_min_size | minimum file size for which to calculate delta signature |
delta_diff | whether to allow delta diff backup when delta sig is present |
zeroing_neg_date | if true just warn before zeroing neg date, dont ask user |
ignored_symlinks | list of symlink pointed to directory to recurse into |
mod_data_detect | how to verify data has not changed upon inode metadata change |
iteration_count | for key derivation |
kdf_hash | hash used for key derivation |
sign_block_len | block len for signature |
st_ptr | statistics must not be nullptr ! |
statistics libdar::archive::op_diff | ( | const path & | fs_root, |
const archive_options_diff & | options, | ||
statistics * | progressive_report | ||
) |
archive comparison with filesystem
[in] | fs_root | the filesystem to take as root for the comparison |
[in] | options | optional parameters to be used with the operation |
[in,out] | progressive_report | points to an already existing statistics object that can be consulted at any time during the call (see the returned value to know the useful fields and their meining), nullptr can be given in argument if you only need the result at the end of the operation through the returned value of this call this should speed up the operation by a little amount. |
statistics libdar::archive::op_extract | ( | const path & | fs_root, |
const archive_options_extract & | options, | ||
statistics * | progressive_report | ||
) |
extraction of data from an archive
[in] | fs_root | the filesystem to take as root for the restoration |
[in] | options | optional parameter to be used for the operation |
[in,out] | progressive_report | points to an already existing statistics object that can be consulted at any time during the call (see the returned value to know the useful fields and their meining), nullptr can be given in argument if you only need the result at the end of the operation through the returned value of this call this should speed up the operation by a little amount. |
void libdar::archive::op_isolate | ( | const path & | sauv_path, |
const std::string & | filename, | ||
const std::string & | extension, | ||
const archive_options_isolate & | options | ||
) |
this methodes isolates the catalogue of a the current archive into a separated archive
[in] | sauv_path | the path where to create slices |
[in] | filename | base name of the slices ("-" for standard output) |
[in] | extension | slices extension ("dar") |
[in] | options | optional parameters to use for the operation |
void libdar::archive::op_listing | ( | archive_listing_callback | callback, |
void * | context, | ||
const archive_options_listing & | options | ||
) | const |
listing of the archive contents
[in] | callback | callback function used to provide data in splitted field (not used if null is given) |
[in] | context | will be passed as is to the last argument of the provided callback |
[in] | options | list of optional parameters to use for the operation |
statistics libdar::archive::op_test | ( | const archive_options_test & | options, |
statistics * | progressive_report | ||
) |
test the archive integrity
[in] | options | optional parameter to use for the operation |
[in,out] | progressive_report | points to an already existing statistics object that can be consulted at any time during the call (see the returned value to know the useful fields and their meining), nullptr can be given in argument if you only need the result at the end of the operation through the returned value of this call this should speed up the operation by a little amount. |
std::ostream& libdar::operator<< | ( | std::ostream & | ref, |
const infinint & | arg | ||
) |
specific << operator to use infinint in std::ostream
including "deci.hpp" let this operator available so you can display infinint with the << std::ostream operator as you can do for standard types.
bool libdar::string_to_hash_algo | ( | const std::string & | arg, |
hash_algo & | val | ||
) |
convert string to hash algorithm
[in] | arg | string to cast to a hash algorithm name |
[out] | val | is set to the corresponding hash algorithm if the function returns true |
void libdar::archive::summary | ( | ) |
display a summary of the archive
|
inline |
convert infinint to standard interger types
Definition at line 124 of file real_infinint.hpp.