| Disk ARchive 2.5.10 Full featured and portable backup and archiving tool

- Main Page
- Modules
- Namespaces
- Classes
- Files

- Namespace List
- Namespace Members

Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
libdar Namespace Reference
API | Private

libdar namespace encapsulate all libdar symbols More...

## Namespaces
| compile_time
| nested namespace inside libdar

## Classes
class | archive
| the archive class realizes the most general operations on archives More...
class | archive_options_create
| class holding optional parameters used to create an archive More...
class | archive_options_extract
| class holding optional parameters used to extract files from an existing archive More...
class | archive_options_isolate
| class holding optional parameters used to isolate an existing archive More...
class | archive_options_listing
| class holding optional parameters used to list the contents of an existing archive More...
class | archive_options_merge
| class holding optional parameters used to proceed to the merge operation More...
class | archive_options_read
| class holding optional parameters used to read an existing archive More...
class | archive_options_test
| class holding optional parameters used to test the structure coherence of an existing archive More...
class | archive_version
| class archive_version manages the version of the archive format More...
class | bool_mask
| boolean mask, either always true or false More...
class | cache
class | cat_blockdev
| the block device class More...
class | cat_chardev
| the char device class More...
class | cat_detruit
| the deleted file entry More...
class | cat_device
| the special cat_device root class More...
class | cat_directory
| the cat_directory inode class More...
class | cat_door
| the class for Door IPC (mainly for Solaris) More...
class | cat_entree
| the root class from all other inherite for any entry in the catalogue More...
class | cat_eod
| the End of Directory entry class More...
class | cat_etoile
| the hard link implementation (etoile means star in French, seen a star as a point from which are thrown many ray of light) More...
class | cat_file
| the plain file class More...
class | cat_ignored
| the present file to ignore (not to be recorded as deleted later) More...
class | cat_ignored_dir
| the ignored cat_directory class, to be promoted later as empty cat_directory if needed More...
class | cat_inode
| the root class for all cat_inode More...
class | cat_lien
| the symbolic link inode class More...
class | cat_mirage
| the hard link implementation, cat_mirage is the named entry owned by a directory it points to a common "cat_etoile class" More...
class | cat_nomme
| the base class for all entry that have a name More...
class | cat_prise
| the Unix socket inode class More...
class | cat_tube
| the named pipe class 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 | crit_action
| the global action for overwriting More...
class | crit_and
| realises the AND operator More...
class | crit_chain
| the crit_chain class sequences crit_actions up to full definition of the action More...
class | crit_constant_action
| the basic constant action More...
class | 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 | crit_in_place_data_dirty
| return true if the entry is a dirty file (or hard linked dirty file) More...
class | 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 | crit_in_place_data_more_recent_or_equal_to
| returns true if the data of the first entry is more recent or of the same date as the fixed date given in argument to the constructor More...
class | crit_in_place_data_saved
| returns true if the data of the first entry is saved int the archive (not marked as unchanged since the archive of reference) More...
class | crit_in_place_data_sparse
| return true if the entry is a sparse file (or hard linked sparse file) More...
class | 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 | 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 | 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 | crit_in_place_EA_present
class | 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 | crit_in_place_is_dir
| returns true if the first entry is a cat_directory (whatever is the second) More...
class | crit_in_place_is_file
| returns true if the first entry is a plain file (whatever is the second) More...
class | 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 | crit_in_place_is_inode
| returns true if the first entry is an inode (whatever is the second) More...
class | crit_in_place_is_new_hardlinked_inode
| returns true if the first entry is a inode with several hard links (whatever is the second entry) and also if this first entry is the first we meet that points to this hard linked inode More...
class | 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 | crit_not
| realises the negation of the criterium given in argument to its constructor More...
class | 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 | criterium
| the generic criterium class, parent of all criterium More...
class | crypto_asym
class | crypto_sym
class | data_dir
| the data_dir class inherits from data_tree and holds the directory tree's parent relationship More...
class | data_tree
| the data_tree class stores presence of a given file in a set of archives More...
class | database
| the database class defines the dar_manager database More...
class | database_add_options
| options to add an archive to base More...
class | database_change_basename_options
| options for changing a given archive's basename More...
class | database_change_path_options
| options for changing a given archive's path More...
class | database_dump_options
| options to write a database to file More...
class | database_open_options
| options to open a database More...
class | database_remove_options
| options to remove an archive from the base More...
class | database_restore_options
| options for restoration from database More...
class | database_used_options
| options for file "used" in archive 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...
class | ea_attributs
| the class ea_attributs manages the set of EA that can be associated to an inode More...
class | Ebug
| exception used to signal a bug. A bug is triggered when reaching some code that should never be reached More...
class | Ecompilation
| exception used when a requested fearture has not beed activated at compilation time More...
class | Edata
| exception used when an error concerning the treated data has been met 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 | Egeneric
| this is the parent class of all exception classes. More...
class | Ehardware
| exception used when hardware problem is found More...
class | Einfinint
| exception used when arithmetic error is detected when operating on infinint More...
class | elastic
| the elastic buffer class More...
class | Elibcall
| exception used to signal an error in the argument given to libdar call of the API More...
class | Elimitint
| exception used when a limitint overflow is detected, the maximum value of the limitint has been exceeded More...
class | Ememory
| exception used when memory has been exhausted More...
struct | entree_stats
| holds the statistics contents of a catalogue More...
class | entrepot
| the Entrepot interface More...
class | entrepot_local
class | Erange
| exception used to signal range error More...
class | Escript
| exception used when error the inter-slice user command returned an error code More...
class | Esecu_memory
| exception used when secure memory has been exhausted More...
class | Esystem
| exception used to carry system error More...
class | et_mask
| makes an AND operator between two or more masks More...
struct | etage
| the etage structure keep trace of directory contents More...
class | Ethread_cancel
| exception used when the thread libdar is running in is asked to stop More...
class | Ethread_cancel_with_attr
| Ethread_cancel with infinint attribute. More...
class | Euser_abort
| exception used to signal that the user has aborted the operation More...
class | exclude_dir_mask
| matches if string is the given constructor string or a sub directory of it More...
class | fichier_global
| abstraction of filesystem files for entrepot More...
class | fichier_local
| filesystem local files 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_read
| keep trace of hard links when reading the filesystem 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 these to real filesystem objects More...
class | filesystem_specific_attribute
class | generic_file
| this is the interface class from which all other data transfer classes inherit More...
class | generic_file_overlay_for_gpgme
class | header
| this class manages the header of each slice More...
class | header_version
| manages the archive header and trailer More...
class | infinint
| the arbitrary large positive integer class More...
class | limitint
class | list_entry
class | mask
| the generic class, parent of all masks More...
class | mask_list
class | mem_allocator
| generic interface of objects that need to be informed that a memory block they manage has been released More...
class | mem_manager
| generic interface of memory managers that create and delete mem_allocator objects depending on requests More...
class | mem_ui
| class mem_ui to keep a copy of a user_interaction object More...
class | not_mask
| negation of another mask More...
class | null_file
| the null_file class implements the /dev/null behavior More...
class | on_pool
class | ou_mask
| makes the OR operator between two or more masks More...
class | path
| the class path is here to manipulate paths in the Unix notation: using'/' More...
class | regular_mask
| matches regular expressions (see "man 7 regex") More...
class | same_path_mask
| matches if string is exactly the given mask (no wilde card expression) More...
class | sar
| Sar class stands for Segmentation And Reassembly class. More...
class | scrambler
| scrambler is a very weak encryption scheme More...
class | secu_string
| class secu_string More...
class | semaphore
| class semaphore More...
class | simple_mask
| matches as done on shell command lines (see "man 7 glob") More...
class | simple_path_mask
| string matches if it is subdir of mask or mask is a subdir of expression More...
class | slave_zapette
| this class answers to order given by a zapette object More...
class | smart_node
class | smart_pointer
class | statistics
| structure returned by libdar call to give a summary of the operation done in term of file treated More...
class | storage
| arbitrary large storage structure More...
class | terminateur
| terminateur class indicates the location of the beginning of the catalogue More...
class | testing
| the testing class binds criterium to actions More...
class | thread_cancellation
| class to be used as parent to provide checkpoints to inherited classes More...
class | tlv
class | trivial_sar
class | tronc
| makes 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 cypher/decypher data block by block. More...
class | trontextual
| trontextual class is a contextual class tronc, that's all. More...
class | tuyau
| pipe implementation under the generic_file interface. More...
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_blind
| full implementation class for user_interaction, which shows nothing and assumes answer "no" to any question 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...

## Typedefs
typedef U_16 | archive_num
typedef std::set< fsa_family > | fsa_scope
typedef U_32 | magic_number
typedef unsigned char | int_tools_bitfield[8]

## Enumerations
enum | capa_status { capa_set, capa_clear, capa_unknown }
enum | saved_status { s_saved, s_fake, s_not_saved }
enum | compression { none = 'n', gzip = 'z', bzip2 = 'y', lzo = 'l', xz = 'x', lzo1x_1_15 = 'j', lzo1x_1 = 'k' }
| the different compression algorithm available More...
enum | over_action_data { data_preserve, data_overwrite, data_preserve_mark_already_saved, data_overwrite_mark_already_saved, data_remove, data_undefined, data_ask }
| the possible actions for overwriting data
enum | over_action_ea { EA_preserve, EA_overwrite, EA_clear, EA_preserve_mark_already_saved, EA_overwrite_mark_already_saved, EA_merge_preserve, EA_merge_overwrite, EA_undefined, EA_ask }
| the possible action for overwriting EA
enum | crypto_algo { crypto_none, crypto_scrambling, crypto_blowfish, crypto_aes256, crypto_twofish256, crypto_serpent256, crypto_camellia256 }
| the different cypher available for encryption (strong or weak) More...
enum | elastic_direction { elastic_forward, elastic_backward }
enum | fsa_family { fsaf_hfs_plus, fsaf_linux_extX }
| FSA family.
enum | 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 | gf_mode { gf_read_only, gf_write_only, gf_read_write }
| generic_file openning modes More...
enum | hash_algo { hash_none, hash_md5, hash_sha1, hash_sha512 }
enum | flag_type { flag_type_terminal = 'T', flag_type_non_terminal = 'N', flag_type_located_at_end_of_slice = 'E' }
enum | msg_type { unset, order_read_ahead, order_read_ahead_begin, order_read, order_sync_write, answr_sync_write_done, order_skip, order_skip_begin, order_skip_to_eof, order_skip_fwd, order_skip_bkd, answr_skip_done, order_skippable_fwd, order_skippable_fwd_begin, order_skippable_bkd, order_skippable_bkd_begin, answr_skippable, order_get_position, answr_position, answr_position_begin, answr_exception, order_end_of_xmit, order_stop_readahead, answr_readahead_stopped, order_wakeup, data_partial, data_completed }
enum | wrapperlib_mode { zlib_mode, bzlib_mode, xz_mode }

## Functions
const archive_version | empty_archive_version ()
capa_status | capability_LINUX_IMMUTABLE (user_interaction &ui, bool verbose)
capa_status | capability_SYS_RESOURCE (user_interaction &ui, bool verbose)
capa_status | capability_FOWNER (user_interaction &ui, bool verbose)
capa_status | capability_CHOWN (user_interaction &ui, bool verbose)
std::string | local_perm (const cat_inode &ref, bool hard)
std::string | local_uid (const cat_inode &ref)
std::string | local_gid (const cat_inode &ref)
std::string | local_size (const cat_inode &ref, bool sizes_in_bytes)
std::string | local_storage_size (const cat_inode &ref)
std::string | local_date (const cat_inode &ref)
std::string | local_flag (const cat_inode &ref, bool isolated, bool dirty_seq)
void | xml_listing_attributes (user_interaction &dialog, const std::string &beginning, const std::string &data, const std::string &metadata, const cat_entree *obj=nullptr, bool list_ea=false)
bool | extract_base_and_status (unsigned char signature, unsigned char &base, saved_status &saved)
void | local_display_ea (user_interaction &dialog, const cat_inode *ino, const std::string &prefix, const std::string &suffix, bool xml_output=false)
unsigned char | mk_signature (unsigned char base, saved_status state)
void | unmk_signature (unsigned char sig, unsigned char &base, saved_status &state, bool isolated)
bool | compatible_signature (unsigned char a, unsigned char b)
unsigned char | get_base_signature (unsigned char a)
std::string | entree_to_string (const cat_entree *obj)
compression | char2compression (char a)
char | compression2char (compression c)
std::string | compression2string (compression c)
compression | string2compression (const std::string &a)
crc * | create_crc_from_file (generic_file &f, memory_pool *pool, bool old=false)
crc * | create_crc_from_size (infinint width, memory_pool *pool)
over_action_ea | crit_ask_user_for_EA_action (user_interaction &dialog, const std::string &full_name, const cat_entree *already_here, const cat_entree *dolly)
| ask user for EA action More...
over_action_ea | crit_ask_user_for_FSA_action (user_interaction &dialog, const std::string &full_name, const cat_entree *already_here, const cat_entree *dolly)
| ask user for FSA action More...
over_action_data | crit_ask_user_for_data_action (user_interaction &dialog, const std::string &full_name, const cat_entree *already_here, const cat_entree *dolly)
| ask user for Data action More...
void | crit_show_entry_info (user_interaction &dialog, const std::string &full_name, const cat_entree *already_here, const cat_entree *dolly)
| show information suited for user comparison and decision for entry in conflict More...
std::string | crypto_algo_2_string (crypto_algo algo)
char | crypto_algo_2_char (crypto_algo a)
crypto_algo | char_2_crypto_algo (char a)
bool | same_signatories (const std::list< signator > &a, const std::list< signator > &b)
bool | crypto_min_ver_libgcrypt_no_bug ()
data_dir * | data_tree_read (generic_file &f, unsigned char db_version, memory_pool *pool)
bool | data_tree_find (path chemin, const data_dir &racine, const data_tree *&ptr)
| lookup routine to find a pointer to the dat_dir object corresponding to the given path More...
void | data_tree_update_with (const cat_directory *dir, archive_num archive, data_dir *racine)
archive_num | data_tree_permutation (archive_num src, archive_num dst, archive_num x)
generic_file * | database_header_create (user_interaction &dialog, memory_pool *pool, const std::string &filename, bool overwrite)
| create the header for a dar_manager database More...
generic_file * | database_header_open (user_interaction &dialog, memory_pool *pool, const std::string &filename, unsigned char &db_version)
| read the header of a dar_manager database More...
const unsigned char | database_header_get_supported_version ()
archive_version | db2archive_version (unsigned char db_version)
| converts dar_manager database version to dar archive version in order to properly read time fields
std::ostream & | operator<< (std::ostream &ref, const infinint &arg)
| specific << operator to use infinint in std::ostream More...
ea_attributs * | ea_filesystem_read_ea (const std::string &chemin, const mask &filter, memory_pool *p)
| read EA associated to a given file More...
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 More...
void | ea_filesystem_clear_ea (const std::string &name, const mask &filter, memory_pool *p)
| remove all EA of a given file that match a given mask More...
bool | ea_filesystem_has_ea (const std::string &name, memory_pool *p)
| test the presence of EA for a given file More...
bool | ea_filesystem_has_ea (const std::string &name, const mask &filter, memory_pool *p)
| test the presence of EA for a given file More...
const char * | dar_gettext (const char *)
| a routine to change NLS domaine forth and back for inline routines
template<class T >
T * | cloner (const T *x, memory_pool *p)
void | filtre_restore (user_interaction &dialog, memory_pool *pool, const mask &filtre, const mask &subtree, const catalogue &cat, const path &fs_racine, bool fs_warn_overwrite, bool info_details, bool display_treated, bool display_treated_only_dir, bool display_skipped, statistics &st, const mask &ea_mask, bool flat, cat_inode::comparison_fields what_to_check, bool warn_remove_no_match, bool empty, bool empty_dir, const crit_action &x_overwrite, archive_options_extract::t_dirty dirty, bool only_deleted, bool not_deleted, const fsa_scope &scope)
void | filtre_sauvegarde (user_interaction &dialog, memory_pool *pool, const mask &filtre, const mask &subtree, const pile_descriptor &pdesc, catalogue &cat, const catalogue &ref, const path &fs_racine, bool info_details, bool display_treated, bool display_treated_only_dir, bool display_skipped, bool display_finished, statistics &st, bool make_empty_dir, const mask &ea_mask, const mask &compr_mask, const infinint &min_compr_size, bool nodump, const infinint &hourshift, bool alter_time, bool furtive_read_mode, bool same_fs, cat_inode::comparison_fields what_to_check, bool snapshot, bool cache_directory_tagging, bool security_check, const infinint &repeat_count, const infinint &repeat_byte, const infinint &fixed_date, const infinint &sparse_file_min_size, const std::string &backup_hook_file_execute, const mask &backup_hook_file_mask, bool ignore_unknown, const fsa_scope &scope, const std::string &exclude_by_ea)
void | filtre_difference (user_interaction &dialog, memory_pool *pool, const mask &filtre, const mask &subtree, const catalogue &cat, const path &fs_racine, bool info_details, bool display_treated, bool display_treated_only_dir, bool display_skipped, statistics &st, const mask &ea_mask, bool alter_time, bool furtive_read_mode, cat_inode::comparison_fields what_to_check, const infinint &hourshift, bool compare_symlink_date, const fsa_scope &scope, bool isolated_mode)
void | filtre_test (user_interaction &dialog, memory_pool *pool, const mask &filtre, const mask &subtree, const catalogue &cat, bool info_details, bool display_treated, bool display_treated_only_dir, bool display_skipped, bool empty, statistics &st)
void | filtre_merge (user_interaction &dialog, memory_pool *pool, const mask &filtre, const mask &subtree, const pile_descriptor &pdesc, catalogue &cat, const catalogue *ref1, const catalogue *ref2, bool info_details, bool display_treated, bool display_treated_only_dir, bool display_skipped, statistics &st, bool make_empty_dir, const mask &ea_mask, const mask &compr_mask, const infinint &min_compr_size, bool keep_compressed, const crit_action &overwrite, bool warn_overwrite, bool decremental_mode, const infinint &sparse_file_min_size, const fsa_scope &scope)
void | filtre_sequentially_read_all_catalogue (catalogue &cat, user_interaction &dialog, bool lax_read_mode)
std::string | fsa_family_to_string (fsa_family f)
std::string | fsa_nature_to_string (fsa_nature n)
fsa_scope | all_fsa_families ()
| provides a scope containing all FSA families
infinint | fsa_scope_to_infinint (const fsa_scope &val)
fsa_scope | infinint_to_fsa_scope (const infinint &ref)
std::string | fsa_scope_to_string (bool saved, const fsa_scope &scope)
const char * | generic_file_get_name (gf_mode mode)
| provides a human readable string defining the gf_mode given in argument
std::string | hash_algo_to_string (hash_algo algo)
void | int_tools_swap_bytes (unsigned char &a, unsigned char &b)
void | int_tools_swap_bytes (unsigned char *a, U_I size)
void | int_tools_expand_byte (unsigned char a, int_tools_bitfield &bit)
void | int_tools_contract_byte (const int_tools_bitfield &b, unsigned char &a)
template<class T >
T | int_tools_rotate_right_one_bit (T v)
template<class T >
T | int_tools_maxof_agregate (T unused)
void | integer_check ()
| checks sign and width of integer types More...
bool | integers_system_is_big_endian ()
| returns true if the system is big endian, false else More...
void | 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 | get_version_noexcept (U_I &major, U_I &medium, U_I &minor, U_16 &exception, std::string &except_msg, bool init_libgcrypt=true)
| return the libdar version, and make libdar initialization (does not throw exceptions) More...
void | close_and_clean ()
archive * | open_archive_noexcept (user_interaction &dialog, const path &chem, const std::string &basename, const std::string &extension, const archive_options_read &options, U_16 &exception, std::string &except_msg)
| this is a wrapper around the archive constructor known as the "read" constructor More...
archive * | create_archive_noexcept (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, U_16 &exception, std::string &except_msg)
| this is a wrapper around the archive constructor known as the "create" constructor More...
archive * | isolate_archive_noexcept (user_interaction &dialog, archive *ptr, const path &sauv_path, const std::string &filename, const std::string &extension, const archive_options_isolate &options, U_16 &exception, std::string &except_msg)
| this is a wrapper around the archive constructor known as the "isolate" constructor More...
archive * | merge_archive_noexcept (user_interaction &dialog, const path &sauv_path, archive *ref_arch1, const std::string &filename, const std::string &extension, const archive_options_merge &options, statistics *progressive_report, U_16 &exception, std::string &except_msg)
| this is a wrapper around the archive constructor known as the "merging" constructor More...
void | close_archive_noexcept (archive *ptr, U_16 &exception, std::string &except_msg)
| this is wrapper around the archive destructor More...
statistics | op_extract_noexcept (user_interaction &dialog, archive *ptr, const path &fs_root, const archive_options_extract &options, statistics *progressive_report, U_16 &exception, std::string &except_msg)
| this is wrapper around the op_extract method More...
void | op_listing_noexcept (user_interaction &dialog, archive *ptr, const archive_options_listing &options, U_16 &exception, std::string &except_msg)
| this is wrapper around the op_listing method More...
statistics | op_diff_noexcept (user_interaction &dialog, archive *ptr, const path &fs_root, const archive_options_diff &options, statistics *progressive_report, U_16 &exception, std::string &except_msg)
| this is wrapper around the op_diff method More...
statistics | op_test_noexcept (user_interaction &dialog, archive *ptr, const archive_options_test &options, statistics *progressive_report, U_16 &exception, std::string &except_msg)
| this is wrapper around the op_test method More...
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 More...
char * | libdar_str2charptr_noexcept (const std::string &x, U_16 &exception, std::string &except_msg)
| routine provided to convert std::string to char * More...
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 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 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)
trivial_sar * | macro_tools_open_archive_tuyau (user_interaction &dialog, memory_pool *pool, S_I fd, gf_mode mode, const label &internal_name, const label &data_name, bool slice_header_format_07, const std::string &execute)
| create an container to write an archive to a pipe
void | macro_tools_open_archive (user_interaction &dialog, memory_pool *pool, const entrepot &where, const std::string &basename, const infinint &min_digits, const std::string &extension, crypto_algo crypto, const secu_string &pass, U_32 crypto_size, pile &stack, header_version &ver, const std::string &input_pipe, const std::string &output_pipe, const std::string &execute, infinint &second_terminateur_offset, bool lax, bool has_external_cat, bool sequential_read, bool info_details, std::list< signator > &gnupg_signed, slice_layout &sl, bool multi_threaded)
catalogue * | macro_tools_get_derivated_catalogue_from (user_interaction &dialog, memory_pool *pool, pile &data_stack, pile &cata_stack, const header_version &ver, bool info_details, infinint &cat_size, const infinint &second_terminateur_offset, std::list< signator > &signatories, bool lax_mode)
| uses terminator to skip to the position where to find the catalogue and read it, taking care of having this catalogue pointing to the real data (context of isolated catalogue — cata_stack — used to rescue an internal archive — data_stack)
catalogue * | macro_tools_get_catalogue_from (user_interaction &dialog, memory_pool *pool, pile &stack, const header_version &ver, bool info_details, infinint &cat_size, const infinint &second_terminateur_offset, std::list< signator > &signatories, bool lax_mode)
| uses terminator to skip to the position where to find the catalogue and read it
catalogue * | macro_tools_read_catalogue (user_interaction &dialog, memory_pool *pool, const header_version &ver, const pile_descriptor &cata_pdesc, const infinint &cat_size, std::list< signator > &signatories, bool lax_mode, const label &lax_layer1_data_name, bool only_detruits)
| read the catalogue from cata_stack assuming the cata_stack is positionned at the beginning of the area containing archive's dumped data
catalogue * | macro_tools_lax_search_catalogue (user_interaction &dialog, memory_pool *pool, pile &stack, const archive_version &edition, compression compr_algo, bool info_details, bool even_partial_catalogues, const label &layer1_data_name)
infinint | macro_tools_get_terminator_start (generic_file &f, const archive_version &reading_ver)
void | macro_tools_create_layers (user_interaction &dialog, pile &layers, header_version &ver, slice_layout &slicing, const slice_layout *ref_slicing, memory_pool *pool, const entrepot &sauv_path_t, 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 secu_string &pass, U_32 crypto_size, const std::vector< std::string > &gnupg_recipients, const std::vector< std::string > &gnupg_signatories, bool empty, const std::string &slice_permission, bool add_marks_for_sequential_reading, const std::string &user_comment, hash_algo hash, const infinint &slice_min_digits, const label &internal_name, const label &data_name, bool multi_threaded)
void | macro_tools_close_layers (user_interaction &dialog, pile &layers, const header_version &ver, const catalogue &cat, bool info_details, crypto_algo crypto, compression algo, const std::vector< std::string > &gnupg_recipients, const std::vector< std::string > &gnupg_signatories, bool empty)
range | macro_tools_get_slices (const cat_nomme *obj, slice_layout sl)
bool | msg_equivalent (msg_type arg1, msg_type arg2)
bool | msg_continues (msg_type msg)
char | msg_type2char (msg_type x)
msg_type | char2msg_type (char x)
msg_type | msg_continuation_of (msg_type x)
infinint | operator+ (const infinint &, const infinint &)
infinint | operator- (const infinint &, const infinint &)
infinint | operator* (const infinint &, const infinint &)
infinint | operator* (const infinint &, const unsigned char)
infinint | operator* (const unsigned char, const infinint &)
infinint | operator/ (const infinint &, const infinint &)
infinint | operator% (const infinint &, const infinint &)
infinint | operator& (const infinint &a, const infinint &bit)
infinint | operator| (const infinint &a, const infinint &bit)
infinint | operator^ (const infinint &a, const infinint &bit)
infinint | operator>> (const infinint &a, U_32 bit)
infinint | operator>> (const infinint &a, const infinint &bit)
infinint | operator<< (const infinint &a, U_32 bit)
infinint | operator<< (const infinint &a, const infinint &bit)
void | euclide (infinint a, const infinint &b, infinint &q, infinint &r)
std::string | sar_tools_make_filename (const std::string &base_name, const infinint &num, const infinint &min_digits, const std::string &ext)
bool | sar_tools_extract_num (const std::string &filename, const std::string &base_name, const infinint &min_digits, const std::string &ext, infinint &ret)
bool | sar_tools_get_higher_number_in_dir (entrepot &entr, const std::string &base_name, const infinint &min_digits, const std::string &ext, infinint &ret)
std::string | sar_tools_make_padded_number (const std::string &num, const infinint &min_digits)
void | tools_init ()
| libdar internal use only: it is launched from get_version() and initializes tools internal variables
void | tools_end ()
| libdar internal use only: it is launched from close_and_clean() and releases tools internal variables
char * | tools_str2charptr (const std::string &x)
| convert a string to a char * More...
void | tools_write_string (generic_file &f, const std::string &s)
| write a string to a file with a '\0' at then end More...
void | tools_read_string (generic_file &f, std::string &s)
| read a string from a file expecting it to terminate by '\0' More...
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 More...
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 More...
infinint | tools_get_filesize (const path &p)
| retrieve the size in byte of a file More...
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. More...
std::string | tools_display_integer_in_metric_system (infinint number, const std::string &unit, bool binary)
void | tools_extract_basename (const char *command_name, std::string &basename)
| extracts the basename of a file (removing path part) More...
std::string::iterator | tools_find_last_char_of (std::string &s, unsigned char v)
| give a pointer to the last character of the given value in the given string More...
std::string::iterator | tools_find_first_char_of (std::string &s, unsigned char v)
| give a pointer to the last character of the given value in the given string More...
void | tools_split_path_basename (const char *all, path *&chemin, std::string &base, memory_pool *pool=nullptr)
| split a given full path in path part and basename part More...
void | tools_split_path_basename (const std::string &all, std::string &chemin, std::string &base, memory_pool *pool=nullptr)
| split a given full path in path part and basename part More...
void | tools_open_pipes (user_interaction &dialog, const std::string &input, const std::string &output, tuyau *&in, tuyau *&out, memory_pool *pool=nullptr)
| open a pair of tuyau objects encapsulating two named pipes. More...
void | tools_blocking_read (int fd, bool mode)
| set blocking/not blocking mode for reading on a file descriptor More...
std::string | tools_name_of_uid (const infinint &uid)
| convert uid to name in regards to the current system's configuration More...
std::string | tools_name_of_gid (const infinint &gid)
| convert gid to name in regards of the current system's configuration More...
std::string | tools_uword2str (U_16 x)
| convert unsigned word to string More...
std::string | tools_int2str (S_I x)
| convert integer to string More...
std::string | tools_uint2str (U_I x)
U_I | tools_str2int (const std::string &x)
| convert an integer written in decimal notation to the corresponding value More...
S_I | tools_str2signed_int (const std::string &x)
| convert a signed integer written in decimal notation to the corresponding value More...
bool | tools_my_atoi (const char *a, U_I &val)
| ascii to integer conversion More...
std::string | tools_addspacebefore (std::string s, U_I expected_size)
| prepend spaces before the given string More...
std::string | tools_display_date (const datetime &date)
| convert a date in second to its human readable representation More...
infinint | tools_convert_date (const std::string &repres)
| convert a human readable date representation in number of second since the system reference date More...
void | tools_system (user_interaction &dialog, const std::vector< std::string > &argvector)
| wrapper to the "system" system call. More...
void | tools_system_with_pipe (user_interaction &dialog, const std::string &dar_cmd, const std::vector< std::string > &argvpipe, memory_pool *pool=nullptr)
| wrapper to the "system" system call using anonymous pipe to tranmit arguments to the child process More...
void | tools_write_vector (generic_file &f, const std::vector< std::string > &x)
| write a list of string to file More...
void | tools_read_vector (generic_file &f, std::vector< std::string > &x)
| read a list of string from a file More...
std::string | tools_concat_vector (const std::string &separator, const std::vector< std::string > &x)
| concatenate a vectors of strings in a single string More...
std::vector< std::string > | operator+ (std::vector< std::string > a, std::vector< std::string > b)
| concatenate two vectors More...
void | tools_display_features (user_interaction &dialog)
| display the compilation time features of libdar More...
bool | tools_is_equal_with_hourshift (const infinint &hourshift, const datetime &date1, const datetime &date2)
| test if two dates are equal taking care of a integer hour of difference More...
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, const char *clef)
| isolate the value of a given variable from the environment vector More...
void | tools_check_basename (user_interaction &dialog, const path &loc, std::string &base, const std::string &extension, memory_pool *pool=nullptr)
| does sanity checks on a slice name, check presence and detect whether the given basename is not rather a filename More...
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). More...
bool | tools_look_for (const char *argument, S_I argc, char *const argv[])
| test the presence of an argument More...
void | tools_noexcept_make_date (const std::string &chem, bool symlink, const datetime &last_acc, const datetime &last_mod, const datetime &birth)
| set dates of a given file, no exception thrown More...
void | tools_make_date (const std::string &chemin, bool symlink, const datetime &access, const datetime &modif, const datetime &birth)
| set dates of a given file, may throw exception More...
bool | tools_is_case_insensitive_equal (const std::string &a, const std::string &b)
| compare two string in case insensitive manner More...
void | tools_to_upper (const std::string &r, std::string &uppered)
| convert a string to upper case More...
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 More...
void | tools_read_range (const std::string &s, S_I &min, U_I &max)
| from a string with a range notation (min-max) extract the range values More...
std::string | tools_printf (const char *format,...)
| make printf-like formating to a std::string More...
std::string | tools_vprintf (const char *format, va_list ap)
| make printf-like formating to a std::string More...
bool | tools_do_some_files_match_mask_regex (user_interaction &ui, const std::string &c_chemin, const std::string &file_mask)
| test the presence of files corresponding to a given mask in a directory (regex mask) More...
void | tools_unlink_file_mask_regex (user_interaction &dialog, const std::string &c_chemin, const std::string &file_mask, bool info_details)
| remove files from a given directory More...
void | tools_avoid_slice_overwriting_regex (user_interaction &dialog, const path &chemin, const std::string &basename, const std::string &extension, 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 More...
void | tools_add_elastic_buffer (generic_file &f, U_32 max_size, U_32 modulo, U_32 offset)
| append an elastic buffer of given size to the file More...
bool | tools_are_on_same_filesystem (const std::string &file1, const std::string &file2)
path | tools_relative2absolute_path (const path &src, const path &cwd)
| transform a relative path to an absolute one given the current directory value More...
void | tools_block_all_signals (sigset_t &old_mask)
| block all signals (based on POSIX sigprocmask) More...
void | tools_set_back_blocked_signals (sigset_t old_mask)
| unblock signals according to given mask More...
U_I | tools_count_in_string (const std::string &s, const char a)
| counts the number of a given char in a given string More...
datetime | tools_get_mtime (const std::string &s)
| returns the last modification date of the given file More...
infinint | tools_get_size (const std::string &s)
| returns the size of the given plain file More...
datetime | tools_get_ctime (const std::string &s)
| returns the last change date of the given file More...
std::vector< std::string > | tools_split_in_words (generic_file &f)
| read a file and split its contents into words More...
std::vector< std::string > | tools_split_in_words (const std::string &arg)
| read a std::string and split its contents into words More...
bool | tools_find_next_char_out_of_parenthesis (const std::string &data, const char what, U_32 start, U_32 &found)
| look next char in string out of parenthesis More...
std::string | tools_substitute (const std::string &hook, const std::map< char, std::string > &corres)
| produce the string resulting from the substition of % macro defined in the map More...
std::string | tools_hook_substitute (const std::string &hook, const std::string &path, const std::string &basename, const std::string &num, const std::string &padded_num, const std::string &ext, const std::string &context)
| produces the string resulting from the substitution of %... macro More...
void | tools_hook_execute (user_interaction &ui, const std::string &cmd_line)
| execute and retries at user will a given command line More...
void | tools_hook_substitute_and_execute (user_interaction &ui, const std::string &hook, const std::string &path, const std::string &basename, const std::string &num, const std::string &padded_num, const std::string &ext, const std::string &context)
| subsititue and execute command line More...
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 More...
std::string | tools_output2xml (const std::string &src)
| convert string for xml output More...
U_I | tools_octal2int (const std::string &perm)
| convert octal string to integer More...
std::string | tools_int2octal (const U_I &perm)
| convert a number to a string corresponding to its octal representation More...
std::string | tools_get_permission_string (char type, U_32 perm, bool hard)
| convert a permission number into its string representation (rwxrwxrwx)
void | tools_set_permission (S_I fd, U_I perm)
| change the permission of the file which descriptor is given More...
U_I | tools_get_permission (S_I fd)
| obtain the permission of the file which descriptor is given More...
uid_t | tools_ownership2uid (const std::string &user)
| change ownership of the file which descriptor is given More...
uid_t | tools_ownership2gid (const std::string &group)
| convert string group name or gid to numeric gid value More...
void | tools_set_ownership (S_I filedesc, const std::string &slice_user, const std::string &slice_group)
| change ownership of the file which descriptor is given More...
void | tools_memxor (void *dest, const void *src, U_I n)
| Produces in "dest" the XORed value of "dest" and "src". More...
tlv_list | tools_string2tlv_list (user_interaction &dialog, const U_16 &type, const std::vector< std::string > &data)
| Produces a list of TLV from a constant type and a list of string. More...
void | tools_read_from_pipe (user_interaction &dialog, S_I fd, tlv_list &result)
| Extract from anonymous pipe a tlv_list. More...
U_I | tools_pseudo_random (U_I max)
| Produces a pseudo random number x, where 0 <= x < max. More...
template<class N , class B >
std::vector< B > | tools_number_base_decomposition_in_big_endian (N number, const B &base)
| Template for the decomposition of any number in any base (decimal, octal, hexa, etc.) More...
std::string | tools_unsigned_char_to_hexa (unsigned char x)
| convert a unsigned char into its hexa decima representation More...
std::string | tools_string_to_hexa (const std::string &input)
| convert a string into its hexadecima representation More...
infinint | tools_file_size_to_crc_size (const infinint &size)
| Defines the CRC size to use for a given filesize. More...
std::string | tools_get_euid ()
| return a string containing the Effective UID
std::string | tools_get_egid ()
| return a string containing the Effective UID
std::string | tools_get_hostname ()
| return a string containing the hostname of the current host
std::string | tools_get_date_utc ()
| return a string containing the current time (UTC)
std::string | tools_get_compression_ratio (const infinint &storage_size, const infinint &file_size, bool compressed)
| return the string about compression ratio
std::string | tools_strerror_r (int errnum)
| wrapper routine to strerror_r
void | tools_merge_to_vector (std::vector< std::string > &a, const std::vector< std::string > &b)
| add in 'a', element of 'b' not already found in 'a'
std::vector< std::string > | tools_substract_from_vector (const std::vector< std::string > &a, const std::vector< std::string > &b)
| remove from 'a' elements found in 'b' and return the resulting vector
struct dirent * | tools_allocate_struct_dirent (const std::string &path_name, U_64 &max_name_length, memory_pool *pool=nullptr)
void | tools_release_struct_dirent (struct dirent *ptr)
void | tools_secu_string_show (user_interaction &dialog, const std::string &msg, const secu_string &key)
| display the content of a secu_string, this function is only for trouble shooting!
template<class T >
T | tools_max (T a, T b)
template<class T >
T | tools_min (T a, T b)
std::string | tools_escape_chars_in_string (const std::string &val, const char *to_escape)
| escape with a anti-slash character a set of chars found in the given string
bool | tools_infinint2U_64 (infinint val, U_64 &res)
std::string | sar_make_filename (const std::string &base_name, const infinint &num, const infinint &min_digits, const std::string &ext)
| return the name of a slice given the base_name, slice number and extension

## Variables
const U_32 | SAUV_MAGIC_NUMBER = 123
const label | label_zero
const U_I | LIBDAR_COMPILE_TIME_MAJOR = 5
| libdar Major version defined at compilation time
const U_I | LIBDAR_COMPILE_TIME_MEDIUM = 10
| libdar Medium version defined at compilation time
const U_I | LIBDAR_COMPILE_TIME_MINOR = 0
| libdar Minor version defined at compilation time
const archive_version | macro_tools_supported_version
const std::string | LIBDAR_STACK_LABEL_UNCOMPRESSED
const std::string | LIBDAR_STACK_LABEL_CLEAR
const std::string | LIBDAR_STACK_LABEL_UNCYPHERED
const std::string | LIBDAR_STACK_LABEL_LEVEL1
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

## Detailed Description

libdar namespace encapsulate all libdar symbols

## Typedef Documentation

typedef U_16 libdar::archive_num

Definition at line 51 of file data_tree.hpp.

## Enumeration Type Documentation

enum libdar::elastic_direction

Definition at line 45 of file elastic.hpp.

## Function Documentation

compression libdar::char2compression | ( | char | a | ) |

bool libdar::crypto_min_ver_libgcrypt_no_bug | ( |  | ) |
| inline

Definition at line 52 of file crypto_sym.hpp.

bool libdar::data_tree_find | ( | path | chemin,
|  | const data_dir & | racine,
|  | const data_tree *& | ptr
| ) |  |

lookup routine to find a pointer to the dat_dir object corresponding to the given path

Parameters

  [in] | chemin | is the path to look for
  [in] | racine | is the database to look into
  [out] | ptr | is a pointer to the looked node if found

Returns
  true if a node could be found in the database

generic_file* libdar::database_header_create | ( | user_interaction & | dialog,
|  | memory_pool * | pool,
|  | const std::string & | filename,
|  | bool | overwrite
| ) |  |

create the header for a dar_manager database

Parameters

  [in] | dialog | is used for user interaction
  [in] | pool | memory pool to use or nullptr for default memory allocation
  [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)

Returns
  the database header has been read and checked the database can now be read from the returned generic_file pointed by the returned value then it must be destroyed with the delete operator.

generic_file* libdar::database_header_open | ( | user_interaction & | dialog,
|  | memory_pool * | pool,
|  | const std::string & | filename,
|  | unsigned char & | db_version
| ) |  |

read the header of a dar_manager database

Parameters

  [in] | dialog | for user interaction
  [in] | pool | memory pool to use or nullptr for default memory allocation
  [in] | filename | is the filename to read from
  [out] | db_version | version of the database

Returns
  the generic_file where the database header has been put

void libdar::ea_filesystem_clear_ea | ( | const std::string & | name,
|  | const mask & | filter,
|  | memory_pool * | p
| ) |  |

remove all EA of a given file that match a given mask

Parameters

  [in] | name | is the filename which EA must be altered
  [in] | filter | is a mask that defines which EA names have to be removed
  [in] | p | points to the memory pool to use or is to be set to nullptr for no pool utilisation

Note
  unless the given mask is logically equivalent to bool_mask(true) some EA may remain associated to the file after the operation.

bool libdar::ea_filesystem_has_ea | ( | const std::string & | name,
|  | memory_pool * | p
| ) |  |

test the presence of EA for a given file

Parameters

  [in] | name | is the filename which EA presence must be check against
  [in] | p | points to the memory pool to use or is to be set to nullptr for no pool utilisation

Returns
  true if at least one EA has been found

bool libdar::ea_filesystem_has_ea | ( | const std::string & | name,
|  | const mask & | filter,
|  | memory_pool * | p
| ) |  |

test the presence of EA for a given file

Parameters

  [in] | name | is the filename which EA presence must be check against
  [in] | filter | is a mask that defines which attributes names to only consider
  [in] | p | points to the memory pool to use or is to be set to nullptr for no pool utilisation

Returns
  true if at least one EA has been found

ea_attributs* libdar::ea_filesystem_read_ea | ( | const std::string & | chemin,
|  | const mask & | filter,
|  | memory_pool * | p
| ) |  |

read EA associated to a given file

Parameters

  [in] | chemin | is the path to the file to read attributes of
  [in] | filter | is a mask that defines which attributes names have to be considered only
  [in] | p | the memory pool to use for dynamic allocation of nullptr to not used any memory pool

Returns
  nullptr if no EA have been found under the specified mask, or returns a newly allocated object that the caller has the responsibility to delete when no more needed

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

Parameters

  [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

Returns
  true if some attribute could be set

Note
  if an EA is already present, it is not modified unless the mask covers its name and a value is available for that attribute name in the given list.

void libdar::filtre_restore | ( | user_interaction & | dialog,
|  | memory_pool * | pool,
|  | const mask & | filtre,
|  | const mask & | subtree,
|  | const catalogue & | cat,
|  | const path & | fs_racine,
|  | bool | fs_warn_overwrite,
|  | bool | info_details,
|  | bool | display_treated,
|  | bool | display_treated_only_dir,
|  | bool | display_skipped,
|  | statistics & | st,
|  | const mask & | ea_mask,
|  | bool | flat,
|  | cat_inode::comparison_fields | what_to_check,
|  | bool | warn_remove_no_match,
|  | bool | empty,
|  | bool | empty_dir,
|  | const crit_action & | x_overwrite,
|  | archive_options_extract::t_dirty | dirty,
|  | bool | only_deleted,
|  | bool | not_deleted,
|  | const fsa_scope & | scope
| ) |  |

void libdar::integer_check | ( |  | ) |

checks sign and width of integer types

Note
  this call may throws an Ehardware exception

bool libdar::integers_system_is_big_endian | ( |  | ) |

returns true if the system is big endian, false else

Note
  this call may throw an Ehardware() exception if the system is not coherent for all integer types

void libdar::macro_tools_close_layers | ( | user_interaction & | dialog,
|  | pile & | layers,
|  | const header_version & | ver,
|  | const catalogue & | cat,
|  | bool | info_details,
|  | crypto_algo | crypto,
|  | compression | algo,
|  | const std::vector< std::string > & | gnupg_recipients,
|  | const std::vector< std::string > & | gnupg_signatories,
|  | bool | empty
| ) |  |

dumps the catalogue and close all the archive layers to terminate the archive

Parameters

  [in] | dialog | for user interaction
  [in] | layers | the archive layers to close
  [in] | ver | the archive "header" to be dropped at end of archive
  [in] | cat | the catalogue to dump in the layer before closing the archive
  [in] | info_details | whether to display detailed information
  [in] | crypto | cipher algorithm used in "layers"
  [in] | gnupg_recipients | used sign the catalog, use an empty vector if there is no signatories (no nedd to sign the hash of the catalogue)
  [in] | gnupg_signatories | used to sign the catalog, use an empty vector to disable signning
  [in] | algo | compression algorithm used
  [in] | empty | dry-run execution (null_file at bottom of the stack)

void libdar::macro_tools_create_layers | ( | user_interaction & | dialog,
|  | pile & | layers,
|  | header_version & | ver,
|  | slice_layout & | slicing,
|  | const slice_layout * | ref_slicing,
|  | memory_pool * | pool,
|  | const entrepot & | sauv_path_t,
|  | 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 secu_string & | pass,
|  | U_32 | crypto_size,
|  | const std::vector< std::string > & | gnupg_recipients,
|  | const std::vector< std::string > & | gnupg_signatories,
|  | bool | empty,
|  | const std::string & | slice_permission,
|  | bool | add_marks_for_sequential_reading,
|  | const std::string & | user_comment,
|  | hash_algo | hash,
|  | const infinint & | slice_min_digits,
|  | const label & | internal_name,
|  | const label & | data_name,
|  | bool | multi_threaded
| ) |  |

build layers for a new archive

Parameters

  [in] | dialog | for user interaction
  [out] | layers | the resulting stack of generic_file layers ready for use
  [out] | ver | the archive "header" to be dropped at end of archive
  [out] | slicing | slicing layout of the archive
  [in] | ref_slicing | if not nullptr the pointed to slicing_layout will be stored in the header/trailer version of the archive
  [in] | pool | memory pool to use for memory allocation (nullptr for no pool usage)
  [in] | sauv_path_t | where to create the archive
  [in] | filename | archive base name
  [in] | extension | archive extension
  [in] | allow_over | whether to allow slice overwriting
  [in] | warn_over | whether to warn before overwriting
  [in] | info_details | whether to display detailed information
  [in] | pause | how many slices to wait before pausing (0 to never wait)
  [in] | algo | compression algorithm
  [in] | compression_level | compression level
  [in] | file_size | size of the slices
  [in] | first_file_size | size of the first slice
  [in] | execute | command to execute after each slice creation
  [in] | crypto | cipher algorithm to use
  [in] | pass | password/passphrase to use for encryption
  [in] | crypto_size | size of crypto blocks
  [in] | gnupg_recipients | list of email recipients'public keys to encrypt a randomly chosen key with
  [in] | gnupg_signatories | list of email which associated signature has to be used to sign the archive
  [in] | empty | dry-run execution (null_file at bottom of the stack)
  [in] | slice_permission | permission to set the slices to
  [in] | add_marks_for_sequential_reading | whether to add an escape layer in the stack
  [in] | user_comment | user comment to add into the slice header/trailer
  [in] | hash | algorithm to use for slices hashing
  [in] | slice_min_digits | minimum number of digits slice number must have
  [in] | internal_name | common label to all slices
  [in] | data_name | to use in slice header
  [in] | multi_threaded | true if libdar can spawn several thread to work

Note
  the stack has the following contents depending on given options

+-top LIBDAR_STACK_LABEL_ +-------------------------------------------—+------------------—+ | [ generic_thread ] | | | compressor | | +-------------------------------------------—+------------------—+ | [ generic_thread ] | | | [ escape ] | | +– - - - - - - - - - - - - - - - - - - - - - -+------------------—+ | [ generic_thread (if crypt or scam is used) ]| | | cache | crypto_sym | scrambler | | | [ cache ] |_CACHE_PIPE | | trivial_sar | null_file | sar | | +-------------------------------------------—+------------------—+ +-bottom

Note
  the bottom cache layer is only present when trivial_sar is used to write on a pipe. trivial_sar used to write a non sliced archive does not use a cache layer above it
  the top cache is only used in place of crypto_sym or scrambler when no encryption is required and the cache layer labelled _CACHE_PIPE is absent.
  escape layer is present by default unless tape marks have been disabled
  the generic_thread are inserted in the stack if multi-threading is possible and allowed

range libdar::macro_tools_get_slices | ( | const cat_nomme * | obj,
|  | slice_layout | sl
| ) |  |

gives the location of data EA and FSA (when they are saved) of the object given in argument

Parameters

  [in] | obj | a pointer to the object which data & EFSA is to be located
  [in] | sl | slice layout of the archive

Returns
  a set of slices which will be required to restore that particular file (over the slice(s) containing the catalogue of course).

void libdar::macro_tools_open_archive | ( | user_interaction & | dialog,
|  | memory_pool * | pool,
|  | const entrepot & | where,
|  | const std::string & | basename,
|  | const infinint & | min_digits,
|  | const std::string & | extension,
|  | crypto_algo | crypto,
|  | const secu_string & | pass,
|  | U_32 | crypto_size,
|  | pile & | stack,
|  | header_version & | ver,
|  | const std::string & | input_pipe,
|  | const std::string & | output_pipe,
|  | const std::string & | execute,
|  | infinint & | second_terminateur_offset,
|  | bool | lax,
|  | bool | has_external_cat,
|  | bool | sequential_read,
|  | bool | info_details,
|  | std::list< signator > & | gnupg_signed,
|  | slice_layout & | sl,
|  | bool | multi_threaded
| ) |  |

setup the given pile object to contain a stack of generic_files suitable to read an archive

Note
  the stack has the following contents depending on given options

+-top LIBDAR_STACK_LABEL_ +-------------------------------------------—+------------------—+ | [ generic_thread ] |_UNCOMPRESSED | | compressor |v v v | +-------------------------------------------—+------------------—+ | [ generic_thread ] |_CLEAR | | [ escape ] |v v v | +-------------------------------------------—+v—v—v---------—+ | [ generic_thread ] |_UNCYPHERED | | [ cache ] | crypto_sym | scrambler |v v v | | [ tronc ] |LEVEL 1 | | trivial_sar | zapette | sar |v v v | +-------------------------------------------—+------------------—+ +-bottom

Note
  generic_thread objects are only present in the stack if multi-thread is active
  escape is present unless tape mark have been disabled at archive creation time
  tronc is not present in sequential read mode
  cache layer is present only in absence of encryption and when no escape layer is above
  _UNCOMPRESSED label is associated to the top of the stack
  _CLEAR is associated to the generic_thread below compressor else escape else the cache or crypto_sym or scrambler which then has two Labels (_CLEAR and _UNCYPHERED)