Disk ARchive: API

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

Loading...
Searching...
No Matches
Files | Namespaces | Classes | Macros | Typedefs | Enumerations | Enumerator | Functions | Variables | Friends
API

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 | cat_status.hpp
| the different status of data and EA
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 | ea.hpp
| contains a set of routines to manage EA values associated to a file
file | entree_stats.hpp
| datastructure holding the nature of file present in a given archive
file | entrepot.hpp
| defines the entrepot interface.
file | entrepot_aux.hpp
| set of datastructures used to interact with entrepot objects
file | entrepot_libcurl.hpp
| defines the implementation for remote filesystem entrepot using libcurl
file | entrepot_libssh.hpp
| defines the implementation for libssh filesystem entrepot The entrepot_libssh correspond to the libssh filesystems.
file | entrepot_local.hpp
| defines the implementation for local filesystem entrepot The entrepot_local correspond to the local filesystems.
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_database.hpp
| mask_database class is a dar_manager database based mask class
file | mask_list.hpp
| here lies a mask that selects files present in a given list
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 | remote_entrepot_api.hpp
| Libdar API to create entrepot objects.
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

## Namespaces
namespace | libdar
| libdar namespace encapsulate all libdar symbols
namespace | libdar::compile_time
| nested namespace inside libdar

## 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::eols
| the class eols provide a way to detect the presence of string from a list of string in a byte flow 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
| 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
using | libdar::database_listing_show_files_callback
| called by the database::get_files() routine
using | libdar::database_listing_get_version_callback
| called with the information of presence for an entry in archive number num
using | libdar::database_listing_statistics_callback
| called with teh information of statistics for each archive in turn
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]
typedef remote_entrepot_type | libdar::mycurl_protocol

## Enumerations
enum class | libdar::modified_data_detection { libdar::modified_data_detection::any_inode_change , libdar::modified_data_detection::mtime_size }
| how to detect data has changed when some fields More...
enum class | libdar::comparison_fields { libdar::comparison_fields::all , libdar::comparison_fields::ignore_owner , libdar::comparison_fields::mtime , libdar::comparison_fields::inode_type }
| how to consider file change during comparison and incremental backup More...
enum class | libdar::hash_algo { libdar::hash_algo::none , libdar::hash_algo::md5 , libdar::hash_algo::sha1 , libdar::hash_algo::sha512 , libdar::hash_algo::argon2 , libdar::hash_algo::whirlpool }
| hashing algorithm available More...
enum class | libdar::compression { libdar::compression::none = 'n' , libdar::compression::gzip = 'z' , libdar::compression::bzip2 = 'y' , libdar::compression::lzo = 'l' , libdar::compression::xz = 'x' , libdar::compression::lzo1x_1_15 = 'j' , libdar::compression::lzo1x_1 = 'k' , libdar::compression::zstd = 'd' , libdar::compression::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::crypto_algo::none , libdar::crypto_algo::scrambling , libdar::crypto_algo::blowfish , libdar::crypto_algo::aes256 , libdar::crypto_algo::twofish256 , libdar::crypto_algo::serpent256 , libdar::crypto_algo::camellia256 }
| the different cypher available for encryption (strong or weak) More...
enum class | libdar::db_lookup { libdar::db_lookup::found_present , libdar::db_lookup::found_removed , libdar::db_lookup::not_found , libdar::db_lookup::not_restorable }
| the available status of a lookup More...
enum class | libdar::db_etat { libdar::db_etat::et_saved , libdar::db_etat::et_patch , libdar::db_etat::et_patch_unusable , libdar::db_etat::et_inode , libdar::db_etat::et_present , libdar::db_etat::et_removed , libdar::db_etat::et_absent }
| the status for a founded entry More...
enum class | libdar::inode_type { nondir , symlink , isdir , unknown }
| type of inode More...
enum | libdar::fsa_family { fsaf_hfs_plus , fsaf_linux_extX }
| FSA family. More...
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. More...
enum | operation { oper_create , oper_isolate , oper_merge , oper_repair }
enum | endian { big_endian , little_endian , not_initialized }
enum | endian { big_endian , little_endian , not_initialized }
enum class | libdar::remote_entrepot_type { libdar::remote_entrepot_type::ftp , libdar::remote_entrepot_type::sftp }
| type of entrepot to create More...

## 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]
| 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]
| 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]
| 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, statistics *progressive_report=nullptr)
| this constructor create a new archive from a damaged one [this is the "repair" constructor]
| libdar::archive::archive (const archive &ref)=delete
| copy constructor (not implemented, throw an exception if called explicitely or implicitely)
| 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
void | libdar::archive::summary ()
| display a summary of the archive
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
statistics | libdar::archive::op_diff (const path &fs_root, const archive_options_diff &options, statistics *progressive_report)
| archive comparison with filesystem
statistics | libdar::archive::op_test (const archive_options_test &options, statistics *progressive_report)
| test the archive integrity
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
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
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)
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 (bool repairing=false)
| closes all filedescriptors and associated even when in sequential read mode
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
U_64 | libdar::archive::get_non_first_slice_header_size () const
| get the non first slice header
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
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
| 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
const std::string & | libdar::archive_summary::get_edition () const
const std::string & | libdar::archive_summary::get_compression_algo () const
const std::string & | libdar::archive_summary::get_user_comment () const
const std::string & | libdar::archive_summary::get_cipher () const
const std::string & | libdar::archive_summary::get_asym () const
bool | libdar::archive_summary::get_signed () const
bool | libdar::archive_summary::get_tape_marks () const
const std::string & | libdar::archive_summary::get_in_place () const
const infinint & | libdar::archive_summary::get_compression_block_size () const
const std::string & | libdar::archive_summary::get_salt () const
const infinint & | libdar::archive_summary::get_iteration_count () const
const std::string & | libdar::archive_summary::get_kdf_hash () 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::set_compression_block_size (const infinint &arg)
void | libdar::archive_summary::set_salt (const std::string &arg)
void | libdar::archive_summary::set_iteration_count (const infinint &arg)
void | libdar::archive_summary::set_kdf_hash (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
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)
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)
void | libdar::get_version (U_I &major, U_I &medium, U_I &minor, U_I gcrypt_secured_memory, bool init_gpgme)
| This flavor of get_version initializes libgcrypt and let the caller specifiy the amount of secure memory to reserve.
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, statistics *progressive_report)
| 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, bool reparing, 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 (bool repairing)
| 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, bool never_resave_uncompressed, 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, bool never_resave_uncompressed, 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 (bool repairing)
| 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)
| 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
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)
remote_entrepot_type | libdar::string_to_remote_entrepot_type (const std::string &arg)
| extract entrepot type from a given URL
std::shared_ptr< entrepot > | libdar::create_remote_entrepot (std::shared_ptr< user_interaction > &dialog, remote_entrepot_type proto, const std::string &login, const secu_string &pass, const std::string &host, const std::string &port, bool auth_from_file, const std::string &sftp_pub_filekey, const std::string &sftp_prv_filekey, const std::string &sftp_known_hosts, U_I network_retry, bool remote_verbose)
| create a remote entrepot of given type

## Variables
constexpr const char * | libdar::dar_extension = "dar"
| the default extension for dar archive
std::shared_ptr< i_archive > | libdar::archive::pimpl
const infinint | libdar::default_iteration_count
| default iteration count for all KDF hash algo except argon2
const infinint | libdar::default_iteration_count_argon2
| default iteration count for argon2 KDF hash
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
infinint | libdar::archive_summary::compr_block_size
| compression block size, or zero if stream compression is used
std::string | libdar::archive_summary::salt
| the salt
infinint | libdar::archive_summary::iteration_count
| iteration count for KDF routine
std::string | libdar::archive_summary::kdf_hash
| kdf hash algo
constexpr U_I | libdar::LIBDAR_COMPILE_TIME_MAJOR = 7
| libdar Major version defined at compilation time
constexpr U_I | libdar::LIBDAR_COMPILE_TIME_MEDIUM = 0
| libdar Medium version defined at compilation time
constexpr U_I | libdar::LIBDAR_COMPILE_TIME_MINOR = 0
| 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
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]
template<class B>
U_8 | libdar::limitint< B >::zeroed_field [ZEROED_SIZE]
template<class B>
limitint< B >::endian | libdar::limitint< B >::used_endian = not_initialized
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]
const remote_entrepot_type | libdar::proto_ftp = remote_entrepot_type::ftp
const remote_entrepot_type | libdar::proto_sftp = remote_entrepot_type::sftp

## 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)

## Detailed Description

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:

- class libdar::archive you can create and manipulate dar archive like the dar command-line tool does
- class libdar::database you can create and manupulate dar_manager database, like the dar_manager CLI tool does
- class libdar::libdar_xform you have guessed, this is the API for dar_xform
- class libdar::libdar_slave still logicial, this is the API for dar_slave all the CLI command mentionned above do rely on these classes so it might help having a look at the CMDLINE namespace for illustration on how to use this classes.

## Macro Definition Documentation

## ◆ OPERATOR

#define OPERATOR | ( |  | OP | ) |

Value:
inline bool operator OP (const infinint &a, const infinint &b) \
{ \
return a.difference(b) OP 0; \
}

Definition at line 176 of file real_infinint.hpp.

## ◆ SRC_BUG

#define SRC_BUG Ebug(__FILE__, __LINE__)

Definition at line 158 of file erreurs.hpp.

## Typedef Documentation

## ◆ archive_listing_callback

using libdar::archive_listing_callback

Initial value:
void (*)(const std::string & the_path,
const list_entry & entry,
void *context)
libdar::list_entry
Definition list_entry.hpp:60

callback function type expected for archive::op_listing and archive::get_children_of()

Definition at line 40 of file archive_listing_callback.hpp.

## ◆ database_archives_list

using libdar::database_archives_list = std::deque<database_archives>

list of archives found in a database

Note
  index 0 is not used, list starts at index 1

Definition at line 75 of file database_archives.hpp.

## ◆ database_listing_get_version_callback

using libdar::database_listing_get_version_callback

Initial value:
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)
libdar::archive_num
class archive_num stores the position of an archive inside a dar_manager database
Definition archive_num.hpp:47
libdar::datetime
stores time information
Definition datetime.hpp:59
libdar::db_etat
db_etat
the status for a founded entry
Definition database_aux.hpp:55

called with the information of presence for an entry in archive number num

Parameters

  [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.

## ◆ database_listing_show_files_callback

using libdar::database_listing_show_files_callback

Initial value:
void (*) (void *context,
const std::string & filename,
bool available_data,
bool available_ea)

called by the database::get_files() routine

Parameters

  [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.

## ◆ database_listing_statistics_callback

using libdar::database_listing_statistics_callback

Initial value:
void (*) (void *context,
U_I number,
const infinint & data_count,
const infinint & total_data,
const infinint & ea_count,
const infinint & total_ea)
libdar::infinint
the arbitrary large positive integer class
Definition real_infinint.hpp:62

called with teh information of statistics for each archive in turn

Parameters

  [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.

## ◆ fsa_scope

using libdar::fsa_scope = std::set<fsa_family>

set of fsa families

Definition at line 70 of file fsa_family.hpp.

## ◆ group [1/2]

using libdar::infinint::group = unsigned char[TG]
| private

Definition at line 150 of file real_infinint.hpp.

## ◆ group [2/2]

template<class B>

using libdar::limitint< B >::group = unsigned char[TG]
| private

Definition at line 189 of file limitint.hpp.

## ◆ mycurl_protocol

typedef remote_entrepot_type libdar::mycurl_protocol

Definition at line 51 of file remote_entrepot_api.hpp.

## Enumeration Type Documentation

## ◆ comparison_fields

enum class libdar::comparison_fields
| strong

how to consider file change during comparison and incremental backup

Enumerator
all | consider any available field for comparing inodes
ignore_owner | consider any available field except ownership fields
mtime | consider any available field except ownership and permission fields
inode_type | only consider the file type

Definition at line 52 of file archive_aux.hpp.

## ◆ compression

enum class libdar::compression
| strong

the different compression algorithm available

values to be used as argument of libdar API calls

Note
  lzo1x_1_15 and lzo1x_1 should never be found in archive but instead lzo should be put in place. In consequence, the two letters 'j' and 'k' reserved here, shall well be modified to other value if necessary in the future, thus would not break any backward compatibility.

Enumerator
none | no compression
gzip | gzip compression (streamed)
bzip2 | bzip2 compression (streamed)
lzo | lzo compression (streamed)
xz | lzma compression (streamed)
lzo1x_1_15 | lzo degraded algo corresponding to lzop -1
lzo1x_1 | lzo degraded algo corresponding to lzo -2 to lzo -6
zstd | zstd compression
lz4 | lz4 (streamed)

Definition at line 45 of file compression.hpp.

## ◆ crypto_algo

enum class libdar::crypto_algo
| strong

the different cypher available for encryption (strong or weak)

Enumerator
none | no encryption
scrambling | scrambling weak encryption
blowfish | blowfish strong encryption
aes256 | AES 256 strong encryption.
twofish256 | twofish 256 strong encryption
serpent256 | serpent 256 strong encryption
camellia256 | camellia 256 strong encryption

Definition at line 49 of file crypto.hpp.

## ◆ db_etat

enum class libdar::db_etat
| strong

the status for a founded entry

Note
  when restoring an et_patch entry, it is required to also restore all to all intermediate et_patch since the last et_saved status. While restoring et_inode only need to restore the previous et_saved and the latest et_inode available. Intermediate et_inode have not to be restored.

Enumerator
et_saved | data/EA present in the archive
et_patch | data present as patch since the previous version
et_patch_unusable | data present as patch but base version not found in archive set
et_inode | only inode metadata has been modified since previous version
et_present | file/EA present in the archive but data not saved (differential backup)
et_removed | file/EA stored as deleted since archive of reference or file/EA not present in the archive
et_absent | file not even mentionned in the archive, This entry is equivalent to et_removed, but is required to be able to properly re-order the archive when user asks to do so. The dates associated to this state are computed from neighbor archives in the database

Definition at line 54 of file database_aux.hpp.

## ◆ db_lookup

enum class libdar::db_lookup
| strong

the available status of a lookup

Enumerator
found_present | file data/EA has been found completely usable
found_removed | file data/EA has been found as removed at that date
not_found | no such file has been found in any archive of the base
not_restorable | file data/EA has been found existing at that date but not possible to restore (lack of data, missing archive in base, etc.)

Definition at line 40 of file database_aux.hpp.

## ◆ endian [1/2]

enum libdar::infinint::endian
| private

Definition at line 149 of file real_infinint.hpp.

## ◆ endian [2/2]

template<class B>

enum libdar::limitint::endian
| private

Definition at line 188 of file limitint.hpp.

## ◆ fsa_family

enum libdar::fsa_family

FSA family.

Definition at line 42 of file fsa_family.hpp.

## ◆ fsa_nature

enum libdar::fsa_nature

FSA nature.

Definition at line 48 of file fsa_family.hpp.

## ◆ hash_algo

enum class libdar::hash_algo
| strong

hashing algorithm available

Enumerator
none | no hashing algorithm
md5 | MD5 algorithm.
sha1 | SHA1 algorithm.
sha512 | SHA-512 algorithm.
argon2 | argon2 hash algorithm
whirlpool | whirlpool hash algorithm

Definition at line 62 of file archive_aux.hpp.

## ◆ inode_type

enum class libdar::inode_type
| strong

type of inode

Definition at line 42 of file entrepot_aux.hpp.

## ◆ modified_data_detection

enum class libdar::modified_data_detection
| 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 or mtime changed

Definition at line 43 of file archive_aux.hpp.

## ◆ operation

enum libdar::archive::i_archive::operation
| private

Definition at line 208 of file i_archive.hpp.

## ◆ over_action_data

enum libdar::over_action_data

the possible actions for overwriting data

Enumerator
data_preserve | do not overwrite (keep the 'in place' entry)
data_overwrite | overwirte the 'in place' entry by the 'to be added' one
data_preserve_mark_already_saved | keep the 'in place' but mark it as already saved in the archive of reference
data_overwrite_mark_already_saved | overwrite the 'in place' but mark the 'to be added' as already saved in the archive of reference
data_remove | remove the original data/EA (file is completely deleted)
data_undefined | action still undefined at this step of the evaluation
data_ask | ask for user decision about file's data

Definition at line 46 of file crit_action.hpp.

## ◆ over_action_ea

enum libdar::over_action_ea

the possible action for overwriting EA

define the action to apply to each EA entry (not to the EA set of a particular inode)

Enumerator
EA_preserve | keep the EA of the 'in place' entry
EA_overwrite | keep the EA of the 'to be added' entry
EA_clear | drop the EA for the elected entry
EA_preserve_mark_already_saved | drop any EA but mark them as already saved in the archive of reference (ctime is the one of the 'in place' inode)
EA_overwrite_mark_already_saved | drop any EA but mark them as already saved in the archive of reference (ctime is the one of the 'to be added' inode)
EA_merge_preserve | merge EA but do not overwrite existing EA of 'in place' by one of the same name of 'to be added' inode
EA_merge_overwrite | merge EA but if both inode share an EA with the same name, take keep the one of the 'to be added' inode
EA_undefined | action still undefined at this step of the evaluation
EA_ask | ask for user decision about EA

Definition at line 61 of file crit_action.hpp.

## ◆ remote_entrepot_type

enum class libdar::remote_entrepot_type
| strong

type of entrepot to create

Enumerator
ftp | filesystem accessed through FTP protocol
sftp | filesystem accessed through SFTP protocol

Definition at line 43 of file remote_entrepot_api.hpp.

## Function Documentation

## ◆ archive() [1/5]

libdar::archive::archive | ( | const archive & | ref | ) |
| delete

copy constructor (not implemented, throw an exception if called explicitely or implicitely)

Note
  this lack of implementation is intentionnal, Archive should rather be manipulated using pointers, or passed as constant reference (const &) in arguments or returned values. Moreover, having two objets one copy of the other may lead to unexpected behaviors while merging or creating, isolating or merging archives.

References archive().

## ◆ archive() [2/5]

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]

Parameters

  [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

Referenced by archive().

## ◆ archive() [3/5]

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,
|  | statistics * | progressive_report = nullptr )

this constructor create a new archive from a damaged one [this is the "repair" constructor]

Parameters

  [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
  [out] | progressive_report | statistics about the operation, considering the treated files (nullptr can be given if you don't want to use this feature)

Note
  the statistics fieds used are the same as the ones used for archive creation, though no entry should be ignored as no file or path filtering exists for this operation, and no skipped or tooold should increase as no comparison is performed to an existing filesystem:
  - treated: the total number of files seen
  - hard_link: the number of hard linked inodes
  - errored: number of files concerned by filesystem error
  - deleted: number of files recorded as deleted
  - ea_treated: number of entry having some EA
  - byte_amount : number of wasted bytes due to repeat on change feature nullptr given for backward compatibility

## ◆ archive() [4/5]

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]

Parameters

  [in,out] | dialog | for user interaction
  [in] | fs_root | the filesystem to take as root for the backup (if relative path is given it is made absolute using the current working directory of the process libdar runs in)
  [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)

Note
  the statistics fields used are:
  - treated: the total number of files seen
  - hard_link: the number of hard linked inodes
  - tooold: the number of files that changed at the time they were saved and that could not be resaved (due to repeat limit or byte limit)
  - skipped: number of files not changed (differential backup)
  - errored: number of files concerned by filesystem error
  - ignored: number of files excluded by filters
  - deleted: number of files recorded as deleted
  - ea_treated: number of entry having some EA
  - byte_amount : number of wasted bytes due to repeat on change feature

## ◆ archive() [5/5]

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]

Parameters

  [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)

Note
  the statistics fields used are:
  - treated: the total number of files seen
  - hard_link: the number of hard linked inodes
  - ignored: number of files excluded by filters
  - deleted: number of files recorded as deleted
  - ea_treated: number of entry with EA

## ◆ archive_summary()

libdar::archive_summary::archive_summary | ( |  | ) |
| inline

Definition at line 47 of file archive_summary.hpp.

## ◆ build_from_file()

template<class B>

void libdar::limitint< B >::build_from_file | ( | proto_generic_file & | x | ) |
| private

Definition at line 258 of file limitint.hpp.

## ◆ char2compression_mode()

bool libdar::char2compression_mode | ( | char | a | ) |
| extern

return true if compression mode is per_block or false if this is a streamed compression

## ◆ char_to_hash_algo()

hash_algo libdar::char_to_hash_algo | ( | unsigned char | arg | ) |
| extern

convert char to hash_algo

Note
  throw Erange exception if provided char is invalid

## ◆ debug_get_bytesize()

template<class B>

B libdar::limitint< B >::debug_get_bytesize | ( |  | ) | const
| inline

Definition at line 170 of file limitint.hpp.

## ◆ debug_get_field()

template<class B>

B libdar::limitint< B >::debug_get_field | ( |  | ) | const
| inline

Definition at line 171 of file limitint.hpp.

## ◆ debug_get_max()

template<class B>

B libdar::limitint< B >::debug_get_max | ( |  | ) | const
| inline

Definition at line 169 of file limitint.hpp.

## ◆ drop_all_filedescriptors()

void libdar::archive::drop_all_filedescriptors | ( | bool | repairing = false | ) |

closes all filedescriptors and associated even when in sequential read mode

Note
  once this method has been called, the archive object can only be used as reference for a differential archive.

## ◆ dump()

template<class B>

void libdar::limitint< B >::dump | ( | proto_generic_file & | x | ) | const

Definition at line 314 of file limitint.hpp.

## ◆ euclide() [1/2]

template<class B>

void libdar::euclide | ( | limitint< B > | a,
|  | U_I | b,
|  | limitint< B > & | q,
|  | limitint< B > & | r )
| inline

Definition at line 231 of file limitint.hpp.

## ◆ euclide() [2/2]

template<class T>

void libdar::euclide | ( | T | a,
|  | T | b,
|  | T & | q,
|  | T & | r )
| inline

Definition at line 225 of file limitint.hpp.

## ◆ get_archive_size()

const infinint & libdar::archive_summary::get_archive_size | ( |  | ) | const
| inline

Definition at line 62 of file archive_summary.hpp.

## ◆ get_asym()

const std::string & libdar::archive_summary::get_asym | ( |  | ) | const
| inline

Definition at line 71 of file archive_summary.hpp.

## ◆ get_cat()

const catalogue & libdar::archive::i_archive::get_cat | ( |  | ) | const
| inlineprivate

Definition at line 223 of file i_archive.hpp.

## ◆ get_cat_size()

infinint libdar::archive::i_archive::get_cat_size | ( |  | ) | const
| inlineprivate

Definition at line 232 of file i_archive.hpp.

## ◆ get_catalog_size()

const infinint & libdar::archive_summary::get_catalog_size | ( |  | ) | const
| inline

Definition at line 63 of file archive_summary.hpp.

## ◆ get_children_in_table()

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)

Parameters

  [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)

Returns
  a table information about all subdir and subfile for the given directory

Note
  at the difference of get_children_of, this call does not rely on a user_interaction class to provide the information, but rather returns a table of children. To allow new fields to be added to the future the table contains an object that provide a method per field.
  before calling this method on this object, a single call to init_catalogue() is mandatory

## ◆ get_children_of()

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

Parameters

  [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)

Returns
  true if some children have been found and the callback has been run at least once

## ◆ get_cipher()

const std::string & libdar::archive_summary::get_cipher | ( |  | ) | const
| inline

Definition at line 70 of file archive_summary.hpp.

## ◆ get_compression_algo()

const std::string & libdar::archive_summary::get_compression_algo | ( |  | ) | const
| inline

Definition at line 68 of file archive_summary.hpp.

## ◆ get_compression_block_size()

const infinint & libdar::archive_summary::get_compression_block_size | ( |  | ) | const
| inline

Definition at line 75 of file archive_summary.hpp.

## ◆ get_contents()

const entree_stats & libdar::archive_summary::get_contents | ( |  | ) | const
| inline

Definition at line 66 of file archive_summary.hpp.

## ◆ get_data_size()

const infinint & libdar::archive_summary::get_data_size | ( |  | ) | const
| inline

Definition at line 65 of file archive_summary.hpp.

## ◆ get_edition()

const std::string & libdar::archive_summary::get_edition | ( |  | ) | const
| inline

Definition at line 67 of file archive_summary.hpp.

## ◆ get_first_slice_header_size()

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).

Note
  may return 0 if the slice header is not known

## ◆ get_first_slice_size()

const infinint & libdar::archive_summary::get_first_slice_size | ( |  | ) | const
| inline

Definition at line 57 of file archive_summary.hpp.

## ◆ get_header()

const header_version & libdar::archive::i_archive::get_header | ( |  | ) | const
| inlineprivate

Definition at line 224 of file i_archive.hpp.

## ◆ get_in_place()

const std::string & libdar::archive_summary::get_in_place | ( |  | ) | const
| inline

Definition at line 74 of file archive_summary.hpp.

## ◆ get_iteration_count()

const infinint & libdar::archive_summary::get_iteration_count | ( |  | ) | const
| inline

Definition at line 77 of file archive_summary.hpp.

## ◆ get_kdf_hash()

const std::string & libdar::archive_summary::get_kdf_hash | ( |  | ) | const
| inline

Definition at line 78 of file archive_summary.hpp.

## ◆ get_last_slice_size()

const infinint & libdar::archive_summary::get_last_slice_size | ( |  | ) | const
| inline

Definition at line 58 of file archive_summary.hpp.

## ◆ get_non_first_slice_header_size()

U_64 libdar::archive::get_non_first_slice_header_size | ( |  | ) | const

get the non first slice header

Note
  may return 0 if the slice header is not known

## ◆ get_ref_first_slice_size()

const infinint & libdar::archive_summary::get_ref_first_slice_size | ( |  | ) | const
| inline

Definition at line 60 of file archive_summary.hpp.

## ◆ get_ref_slice_size()

const infinint & libdar::archive_summary::get_ref_slice_size | ( |  | ) | const
| inline

Definition at line 59 of file archive_summary.hpp.

## ◆ get_salt()

const std::string & libdar::archive_summary::get_salt | ( |  | ) | const
| inline

Definition at line 76 of file archive_summary.hpp.

## ◆ get_signatories()

const std::list< signator > & libdar::archive::i_archive::get_signatories | ( |  | ) | const
| inline

retrieving signature information about the archive

Definition at line 177 of file i_archive.hpp.

References gnupg_signed.

## ◆ get_signed()

bool libdar::archive_summary::get_signed | ( |  | ) | const
| inline

Definition at line 72 of file archive_summary.hpp.

## ◆ get_slice_number()

const infinint & libdar::archive_summary::get_slice_number | ( |  | ) | const
| inline

Definition at line 61 of file archive_summary.hpp.

## ◆ get_slice_size()

const infinint & libdar::archive_summary::get_slice_size | ( |  | ) | const
| inline

Definition at line 56 of file archive_summary.hpp.

## ◆ get_stats()

const entree_stats libdar::archive::i_archive::get_stats | ( |  | ) | const
| inline

retrieving statistics about archive contents

Definition at line 174 of file i_archive.hpp.

References cat.

## ◆ get_storage_size() [1/3]

const infinint & libdar::archive_summary::get_storage_size | ( |  | ) | const
| inline

Definition at line 64 of file archive_summary.hpp.

## ◆ get_storage_size() [2/3]

infinint libdar::infinint::get_storage_size | ( |  | ) | const
| inlinenoexcept

it returns number of byte of information necessary to store the integer

Definition at line 128 of file real_infinint.hpp.

Referenced by libdar::fsa_infinint::storage_size(), and libdar::fsa_time::storage_size().

## ◆ get_storage_size() [3/3]

template<class B>

limitint< B > libdar::limitint< B >::get_storage_size | ( |  | ) | const

Definition at line 577 of file limitint.hpp.

## ◆ get_tape_marks()

bool libdar::archive_summary::get_tape_marks | ( |  | ) | const
| inline

Definition at line 73 of file archive_summary.hpp.

## ◆ get_user_comment()

const std::string & libdar::archive_summary::get_user_comment | ( |  | ) | const
| inline

Definition at line 69 of file archive_summary.hpp.

## ◆ get_version() [1/3]

void libdar::get_version | ( | U_I & | major,
|  | U_I & | medium,
|  | U_I & | minor,
|  | bool | init_libgcrypt,
|  | bool | init_gpgme )
| extern

returns the libdar version and make libdar initialization (may throw Exceptions)

Parameters

  [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)

Note
  at the difference of the previous version this one allow the caller to avoid initializing gpgme.

## ◆ get_version() [2/3]

void libdar::get_version | ( | U_I & | major,
|  | U_I & | medium,
|  | U_I & | minor,
|  | bool | init_libgcrypt = true )
| extern

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)

Parameters

  [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)

Note
  the calling application should check that the major function is the same as the libdar used at compilation time. See API tutorial for a sample code.

## ◆ get_version() [3/3]

void libdar::get_version | ( | U_I & | major,
|  | U_I & | medium,
|  | U_I & | minor,
|  | U_I | gcrypt_secured_memory,
|  | bool | init_gpgme )
| extern

This flavor of get_version initializes libgcrypt and let the caller specifiy the amount of secure memory to reserve.

Parameters

  [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] | gcrypt_secured_memory | amount (in bytes) of secured memory to reserve while initializing libgcrypt
  [in] | init_gpgme | whether to initialize gpgme (not used if gpgme is not linked with libdar)

Note
  setting gcrypt_secured_memory still initializes libgcrypt (algorithms...) but does not setup secured memory at all. Libdar still cleans up (zeroing) allocated memory before releasing it when it is expected to be secured memory, though it can be swapped out to disk, if the system decides so.

## ◆ infinint() [1/3]

libdar::infinint::infinint | ( | const infinint & | ref | ) |
| inline

Definition at line 81 of file real_infinint.hpp.

## ◆ infinint() [2/3]

libdar::infinint::infinint | ( | infinint && | ref | ) |
| inlinenoexcept

Definition at line 82 of file real_infinint.hpp.

## ◆ infinint() [3/3]

libdar::infinint::infinint | ( | size_t | a = 0 | ) |
| inline

Definition at line 75 of file real_infinint.hpp.

## ◆ infinint_from()

template<class T>

void libdar::infinint::infinint_from | ( | T | a | ) |
| private

Definition at line 265 of file real_infinint.hpp.

## ◆ infinint_unstack_to()

template<class T>

void libdar::infinint::infinint_unstack_to | ( | T & | a | ) |
| private

Definition at line 332 of file real_infinint.hpp.

## ◆ init_catalogue() [1/2]

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

## ◆ init_catalogue() [2/2]

void libdar::archive::init_catalogue | ( |  | ) | const

necessary to get the catalogue fully loaded in memory in any situation in particular in sequential reading mode

## ◆ is_system_big_endian()

template<class B>

bool libdar::limitint< B >::is_system_big_endian | ( |  | ) |
| static

Definition at line 616 of file limitint.hpp.

## ◆ is_zero() [1/2]

bool libdar::infinint::is_zero | ( |  | ) | const

Returns
  true when the object is zero (more efficient than integer comparison)

Referenced by 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(), and libdar::list_entry::get_storage_size_for_FSA().

## ◆ is_zero() [2/2]

template<class B>

bool libdar::limitint< B >::is_zero | ( |  | ) | const
| inline

Definition at line 159 of file limitint.hpp.

## ◆ limitint() [1/2]

template<class B>

libdar::limitint< B >::limitint | ( | proto_generic_file & | x | ) |

Definition at line 252 of file limitint.hpp.

## ◆ limitint() [2/2]

template<class B>

libdar::limitint< B >::limitint | ( | size_t | a = 0 | ) |
| inline

Definition at line 104 of file limitint.hpp.

## ◆ limitint_from()

template<class B>
template<class T>

void libdar::limitint< B >::limitint_from | ( | T | a | ) |
| private

Definition at line 533 of file limitint.hpp.

## ◆ limitint_unstack_to()

template<class B>
template<class T>

void libdar::limitint< B >::limitint_unstack_to | ( | T & | a | ) |
| private

Definition at line 556 of file limitint.hpp.

## ◆ max_val_of() [1/2]

template<class T>

T libdar::infinint::max_val_of | ( | T | x | ) |
| private

Definition at line 317 of file real_infinint.hpp.

## ◆ max_val_of() [2/2]

template<class B>
template<class T>

T libdar::limitint< B >::max_val_of | ( | T | x | ) |
| private

Definition at line 541 of file limitint.hpp.

## ◆ modulo()

template<class T>

T libdar::infinint::modulo | ( | T | arg | ) | const
| private

Definition at line 234 of file real_infinint.hpp.

## ◆ move_from()

void libdar::infinint::move_from | ( | infinint && | ref | ) |
| inlineprivatenoexcept

Definition at line 158 of file real_infinint.hpp.

## ◆ op_create_in_sub()

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,
|  | bool | never_resave_uncompressed,
|  | statistics * | st_ptr )
| private

Parameters

  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
  never_resave_uncompressed | avoid trying resaving uncompressed when compression ratio was bad
  st_ptr | statistics must not be nullptr !

## ◆ op_diff()

statistics libdar::archive::op_diff | ( | const path & | fs_root,
|  | const archive_options_diff & | options,
|  | statistics * | progressive_report )

archive comparison with filesystem

Parameters

  [in] | fs_root | the filesystem to take as root for the comparison (if relative path is given it is made absolute using the current working directory of the process libdar runs in)
  [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.

Returns
  the statistics about the operation, considering the treated files

Note
  the statistics fields used are:
  - treated: the total number of files seen
  - errored: number of files that do not match or could not be read
  - ignored: number of files excluded by filters

## ◆ op_extract()

statistics libdar::archive::op_extract | ( | const path & | fs_root,
|  | const archive_options_extract & | options,
|  | statistics * | progressive_report )

extraction of data from an archive

Parameters

  [in] | fs_root | the filesystem to take as root for the restoration (if relative path is given it is made absolute using the current working directory of the process libdar runs in)
  [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.

Returns
  the statistics about the operation, considering the treated files

Note
  the statistics fields used are:
  - treated: the total number of files restored
  - skipped: number of files not saved in the archive
  - tooold: number of file not restored due to overwriting policy decision
  - errored: number of files concerned by filesystem error
  - ignored: number of files excluded by filters
  - deleted: number of files deleted
  - hard_links: number of hard link restored
  - ea_treated: number of entry having some EA

## ◆ op_isolate()

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

Parameters

  [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

Note
  that if the archive contains delta sig and isolation options, specifying not to keep them in the resulting isolated catalogue leads the current archive object (but not the corresponding archive stored on filesystem) to be modified (delta signature are removed) — this is not a const method.

## ◆ op_listing()

void libdar::archive::op_listing | ( | archive_listing_callback | callback,
|  | void * | context,
|  | const archive_options_listing & | options ) const

listing of the archive contents

Parameters

  [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

Note
  if callback is nullptr (or NULL), the output is done using user_interaction provided with archive constructor
  alternative way to get archive contents:
  - archive::get_children_of() method
  - archive::init_catalogue()+get_children_in_table()

## ◆ op_test() [1/2]

statistics libdar::archive::i_archive::op_test | ( | const archive_options_test & | options,
|  | bool | reparing,
|  | statistics * | progressive_report )

test the archive integrity

Parameters

  options | testing options
  reparing | use for isolation of a truncated archive
  progressive_report | if not null structured filled during the call

## ◆ op_test() [2/2]

statistics libdar::archive::op_test | ( | const archive_options_test & | options,
|  | statistics * | progressive_report )

test the archive integrity

Parameters

  [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.

Note
  op_test will generate an error message if used on an archive that has been created by the isolate or creation constructor this is not only an implementation limitation but also a choice. testing an file archive using the C++ object used to create the file is not a good idea. You need to first destroy this C++ object then create a new one with the reading constructor this way only you can be sure your archive is properly tested.

Returns
  the statistics about the operation, considering the treated files

Note
  the statistics fields used are:
  - treated: the total number of files seen
  - skipped: number of file older than the one on filesystem
  - errored: number of files with error

## ◆ operator!=()

template<class B>

bool libdar::limitint< B >::operator!= | ( | const limitint< B > & | x | ) | const
| inline

Definition at line 165 of file limitint.hpp.

## ◆ operator%() [1/3]

U_32 libdar::infinint::operator% | ( | U_32 | arg | ) | const
| inline

Definition at line 115 of file real_infinint.hpp.

## ◆ operator%() [2/3]

template<class B>

U_32 libdar::limitint< B >::operator% | ( | U_32 | arg | ) | const

Definition at line 528 of file limitint.hpp.

## ◆ operator%() [3/3]

template<class B>

limitint< B > libdar::operator% | ( | const limitint< B > & | a,
|  | const limitint< B > & | b )

Definition at line 671 of file limitint.hpp.

## ◆ operator%=() [1/2]

infinint & libdar::infinint::operator%= | ( | const infinint & | ref | ) |
| inline

Definition at line 214 of file real_infinint.hpp.

## ◆ operator%=() [2/2]

template<class B>

limitint< B > & libdar::limitint< B >::operator%= | ( | const limitint< B > & | ref | ) |

Definition at line 470 of file limitint.hpp.

## ◆ operator&() [1/2]

template<class B>

limitint< B > libdar::operator& | ( | const limitint< B > & | a,
|  | const limitint< B > & | bit )

Definition at line 714 of file limitint.hpp.

## ◆ operator&() [2/2]

template<class B>

limitint< B > libdar::operator& | ( | const limitint< B > & | a,
|  | U_32 | bit )

Definition at line 707 of file limitint.hpp.

## ◆ operator&=()

template<class B>

limitint< B > & libdar::limitint< B >::operator&= | ( | const limitint< B > & | ref | ) |

Definition at line 510 of file limitint.hpp.

## ◆ operator*() [1/2]

template<class B>

limitint< B > libdar::operator* | ( | const limitint< B > & | a,
|  | const limitint< B > & | b )

Definition at line 655 of file limitint.hpp.

## ◆ operator*() [2/2]

template<class B>

limitint< B > libdar::operator* | ( | const limitint< B > & | a,
|  | U_I | b )
| inline

Definition at line 208 of file limitint.hpp.

## ◆ operator*=()

template<class B>

limitint< B > & libdar::limitint< B >::operator*= | ( | const limitint< B > & | ref | ) |

Definition at line 432 of file limitint.hpp.

## ◆ operator+() [1/2]

template<class B>

limitint< B > libdar::operator+ | ( | const limitint< B > & | a,
|  | const limitint< B > & | b )

Definition at line 639 of file limitint.hpp.

## ◆ operator+() [2/2]

template<class B>

limitint< B > libdar::operator+ | ( | const limitint< B > & | a,
|  | U_I | b )
| inline

Definition at line 202 of file limitint.hpp.

## ◆ operator++() [1/4]

infinint & libdar::infinint::operator++ | ( |  | ) |
| inline

Definition at line 110 of file real_infinint.hpp.

## ◆ operator++() [2/4]

infinint libdar::infinint::operator++ | ( | int | a | ) |
| inline

Definition at line 106 of file real_infinint.hpp.

## ◆ operator++() [3/4]

template<class B>

limitint & libdar::limitint< B >::operator++ | ( |  | ) |
| inline

Definition at line 140 of file limitint.hpp.

## ◆ operator++() [4/4]

template<class B>

limitint libdar::limitint< B >::operator++ | ( | int | a | ) |
| inline

Definition at line 136 of file limitint.hpp.

## ◆ operator+=()

template<class B>

limitint< B > & libdar::limitint< B >::operator+= | ( | const limitint< B > & | ref | ) |

Definition at line 409 of file limitint.hpp.

## ◆ operator-() [1/2]

template<class B>

limitint< B > libdar::operator- | ( | const limitint< B > & | a,
|  | const limitint< B > & | b )

Definition at line 647 of file limitint.hpp.

## ◆ operator-() [2/2]

template<class B>

limitint< B > libdar::operator- | ( | const limitint< B > & | a,
|  | U_I | b )
| inline

Definition at line 205 of file limitint.hpp.

## ◆ operator--() [1/4]

infinint & libdar::infinint::operator-- | ( |  | ) |
| inline

Definition at line 112 of file real_infinint.hpp.

## ◆ operator--() [2/4]

infinint libdar::infinint::operator-- | ( | int | a | ) |
| inline

Definition at line 108 of file real_infinint.hpp.

## ◆ operator--() [3/4]

template<class B>

limitint & libdar::limitint< B >::operator-- | ( |  | ) |
| inline

Definition at line 142 of file limitint.hpp.

## ◆ operator--() [4/4]

template<class B>

limitint libdar::limitint< B >::operator-- | ( | int | a | ) |
| inline

Definition at line 138 of file limitint.hpp.

## ◆ operator-=()

template<class B>

limitint< B > & libdar::limitint< B >::operator-= | ( | const limitint< B > & | ref | ) |

Definition at line 420 of file limitint.hpp.

## ◆ operator/() [1/2]

template<class B>

limitint< B > libdar::operator/ | ( | const limitint< B > & | a,
|  | const limitint< B > & | b )

Definition at line 663 of file limitint.hpp.

## ◆ operator/() [2/2]

template<class B>

limitint< B > libdar::operator/ | ( | const limitint< B > & | a,
|  | U_I | b )

Definition at line 211 of file limitint.hpp.

## ◆ operator/=() [1/2]

infinint & libdar::infinint::operator/= | ( | const infinint & | ref | ) |
| inline

Definition at line 208 of file real_infinint.hpp.

## ◆ operator/=() [2/2]

template<class B>

limitint< B > & libdar::limitint< B >::operator/= | ( | const limitint< B > & | ref | ) |

Definition at line 461 of file limitint.hpp.

## ◆ operator<()

template<class B>

bool libdar::limitint< B >::operator< | ( | const limitint< B > & | x | ) | const
| inline

Definition at line 161 of file limitint.hpp.

## ◆ operator<<() [1/3]

template<class B>

limitint< B > libdar::operator<< | ( | const limitint< B > & | a,
|  | const limitint< B > & | bit )

Definition at line 686 of file limitint.hpp.

## ◆ operator<<() [2/3]

template<class B>

limitint< B > libdar::operator<< | ( | const limitint< B > & | a,
|  | U_32 | bit )

Definition at line 686 of file limitint.hpp.

## ◆ operator<<() [3/3]

std::ostream & libdar::operator<< | ( | std::ostream & | ref,
|  | const infinint & | arg )
| extern

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.

## ◆ operator<<=() [1/2]

template<class B>

limitint< B > & libdar::limitint< B >::operator<<= | ( | limitint< B > | bit | ) |

Definition at line 488 of file limitint.hpp.

## ◆ operator<<=() [2/2]

template<class B>

limitint< B > & libdar::limitint< B >::operator<<= | ( | U_32 | bit | ) |

Definition at line 488 of file limitint.hpp.

## ◆ operator<=()

template<class B>

bool libdar::limitint< B >::operator<= | ( | const limitint< B > & | x | ) | const
| inline

Definition at line 164 of file limitint.hpp.

## ◆ operator=() [1/2]

infinint & libdar::infinint::operator= | ( | const infinint & | ref | ) |
| inline

Definition at line 84 of file real_infinint.hpp.

## ◆ operator=() [2/2]

infinint & libdar::infinint::operator= | ( | infinint && | ref | ) |
| inlinenoexcept

Definition at line 85 of file real_infinint.hpp.

## ◆ operator==()

template<class B>

bool libdar::limitint< B >::operator== | ( | const limitint< B > & | x | ) | const
| inline

Definition at line 162 of file limitint.hpp.

## ◆ operator>()

template<class B>

bool libdar::limitint< B >::operator> | ( | const limitint< B > & | x | ) | const
| inline

Definition at line 163 of file limitint.hpp.

## ◆ operator>=()

template<class B>

bool libdar::limitint< B >::operator>= | ( | const limitint< B > & | x | ) | const
| inline

Definition at line 166 of file limitint.hpp.

## ◆ operator>>() [1/2]

template<class B>

limitint< B > libdar::operator>> | ( | const limitint< B > & | a,
|  | const limitint< B > & | bit )

Definition at line 686 of file limitint.hpp.

## ◆ operator>>() [2/2]

template<class B>

limitint< B > libdar::operator>> | ( | const limitint< B > & | a,
|  | U_32 | bit )

Definition at line 679 of file limitint.hpp.

## ◆ operator>>=() [1/2]

template<class B>

limitint< B > & libdar::limitint< B >::operator>>= | ( | limitint< B > | bit | ) |

Definition at line 488 of file limitint.hpp.

## ◆ operator>>=() [2/2]

template<class B>

limitint< B > & libdar::limitint< B >::operator>>= | ( | U_32 | bit | ) |

Definition at line 479 of file limitint.hpp.

## ◆ operator[]()

template<class B>

unsigned char libdar::limitint< B >::operator[] | ( | const limitint< B > & | position | ) | const

Definition at line 591 of file limitint.hpp.

## ◆ operator^() [1/2]

template<class B>

limitint< B > libdar::operator^ | ( | const limitint< B > & | a,
|  | const limitint< B > & | bit )

Definition at line 742 of file limitint.hpp.

## ◆ operator^() [2/2]

template<class B>

limitint< B > libdar::operator^ | ( | const limitint< B > & | a,
|  | U_32 | bit )

Definition at line 735 of file limitint.hpp.

## ◆ operator^=()

template<class B>

limitint< B > & libdar::limitint< B >::operator^= | ( | const limitint< B > & | ref | ) |

Definition at line 522 of file limitint.hpp.

## ◆ operator|() [1/2]

template<class B>

limitint< B > libdar::operator| | ( | const limitint< B > & | a,
|  | const limitint< B > & | bit )

Definition at line 728 of file limitint.hpp.

## ◆ operator|() [2/2]

template<class B>

limitint< B > libdar::operator| | ( | const limitint< B > & | a,
|  | U_32 | bit )

Definition at line 721 of file limitint.hpp.

## ◆ operator|=()

template<class B>

limitint< B > & libdar::limitint< B >::operator|= | ( | const limitint< B > & | ref | ) |

Definition at line 516 of file limitint.hpp.

## ◆ power()

template<class T>

infinint libdar::infinint::power | ( | const T & | exponent | ) | const

Definition at line 225 of file real_infinint.hpp.

## ◆ read() [1/2]

void libdar::infinint::read | ( | proto_generic_file & | f | ) |
| inline

Definition at line 90 of file real_infinint.hpp.

## ◆ read() [2/2]

template<class B>

void libdar::limitint< B >::read | ( | proto_generic_file & | f | ) |
| inline

Definition at line 121 of file limitint.hpp.

## ◆ set_archive_size()

void libdar::archive_summary::set_archive_size | ( | const infinint & | arg | ) |
| inline

Definition at line 89 of file archive_summary.hpp.

## ◆ set_asym()

void libdar::archive_summary::set_asym | ( | const std::string & | arg | ) |
| inline

Definition at line 98 of file archive_summary.hpp.

## ◆ set_catalog_size()

void libdar::archive_summary::set_catalog_size | ( | const infinint & | arg | ) |
| inline

Definition at line 90 of file archive_summary.hpp.

## ◆ set_cipher()

void libdar::archive_summary::set_cipher | ( | const std::string & | arg | ) |
| inline

Definition at line 97 of file archive_summary.hpp.

## ◆ set_compression_algo()

void libdar::archive_summary::set_compression_algo | ( | const std::string & | arg | ) |
| inline

Definition at line 95 of file archive_summary.hpp.

## ◆ set_compression_block_size()

void libdar::archive_summary::set_compression_block_size | ( | const infinint & | arg | ) |
| inline

Definition at line 102 of file archive_summary.hpp.

## ◆ set_contents()

void libdar::archive_summary::set_contents | ( | const entree_stats & | arg | ) |
| inline

Definition at line 93 of file archive_summary.hpp.

## ◆ set_data_size()

void libdar::archive_summary::set_data_size | ( | const infinint & | arg | ) |
| inline

Definition at line 92 of file archive_summary.hpp.

## ◆ set_edition()

void libdar::archive_summary::set_edition | ( | const std::string & | arg | ) |
| inline

Definition at line 94 of file archive_summary.hpp.

## ◆ set_first_slice_size()

void libdar::archive_summary::set_first_slice_size | ( | const infinint & | arg | ) |
| inline

Definition at line 84 of file archive_summary.hpp.

## ◆ set_in_place()

void libdar::archive_summary::set_in_place | ( | const std::string & | arg | ) |
| inline

Definition at line 101 of file archive_summary.hpp.

## ◆ set_iteration_count()

void libdar::archive_summary::set_iteration_count | ( | const infinint & | arg | ) |
| inline

Definition at line 104 of file archive_summary.hpp.

## ◆ set_kdf_hash()

void libdar::archive_summary::set_kdf_hash | ( | const std::string & | arg | ) |
| inline

Definition at line 105 of file archive_summary.hpp.

## ◆ set_last_slice_size()

void libdar::archive_summary::set_last_slice_size | ( | const infinint & | arg | ) |
| inline

Definition at line 85 of file archive_summary.hpp.

## ◆ set_ref_first_slice_size()

void libdar::archive_summary::set_ref_first_slice_size | ( | const infinint & | arg | ) |
| inline

Definition at line 87 of file archive_summary.hpp.

## ◆ set_ref_slice_size()

void libdar::archive_summary::set_ref_slice_size | ( | const infinint & | arg | ) |
| inline

Definition at line 86 of file archive_summary.hpp.

## ◆ set_salt()

void libdar::archive_summary::set_salt | ( | const std::string & | arg | ) |
| inline

Definition at line 103 of file archive_summary.hpp.

## ◆ set_signed()

void libdar::archive_summary::set_signed | ( | bool | arg | ) |
| inline

Definition at line 99 of file archive_summary.hpp.

## ◆ set_slice_number()

void libdar::archive_summary::set_slice_number | ( | const infinint & | arg | ) |
| inline

Definition at line 88 of file archive_summary.hpp.

## ◆ set_slice_size()

void libdar::archive_summary::set_slice_size | ( | const infinint & | arg | ) |
| inline

Definition at line 83 of file archive_summary.hpp.

## ◆ set_storage_size()

void libdar::archive_summary::set_storage_size | ( | const infinint & | arg | ) |
| inline

Definition at line 91 of file archive_summary.hpp.

## ◆ set_tape_marks()

void libdar::archive_summary::set_tape_marks | ( | bool | arg | ) |
| inline

Definition at line 100 of file archive_summary.hpp.

## ◆ set_to_unsaved_data_and_FSA()

void libdar::archive::i_archive::set_to_unsaved_data_and_FSA | ( |  | ) |
| inline

change all inode as unsaved (equal to differential backup with no change met)

Definition at line 192 of file i_archive.hpp.

References cat.

## ◆ set_user_comment()

void libdar::archive_summary::set_user_comment | ( | const std::string & | arg | ) |
| inline

Definition at line 96 of file archive_summary.hpp.

## ◆ setup_endian()

template<class B>

void libdar::limitint< B >::setup_endian | ( |  | ) |
| staticprivate

Definition at line 605 of file limitint.hpp.

## ◆ string_to_hash_algo()

bool libdar::string_to_hash_algo | ( | const std::string & | arg,
|  | hash_algo & | val )
| extern

convert string to hash algorithm

Parameters

  [in] | arg | string to cast to a hash algorithm name
  [out] | val | is set to the corresponding hash algorithm if the function returns true

Returns
  true if provided string matches a valid hash algoritm name and give the hash_algo in argument

## ◆ summary()

void libdar::archive::summary | ( |  | ) |

display a summary of the archive

Note
  see also get_stats() method

## ◆ unstack() [1/2]

template<class T>

void libdar::infinint::unstack | ( | T & | v | ) |
| inline

convert infinint to standard interger types

Note
  increment the argument up to a legal value for its storage type and decrement the object in consequence note that the initial value of the argument is not ignored! when the object is null the value of the argument is unchanged

Definition at line 124 of file real_infinint.hpp.

## ◆ unstack() [2/2]

template<class B>
template<class T>

void libdar::limitint< B >::unstack | ( | T & | v | ) |
| inline

Definition at line 150 of file limitint.hpp.

## ◆ ~i_archive()

libdar::archive::i_archive::~i_archive | ( |  | ) |
| inline

the destructor

Definition at line 113 of file i_archive.hpp.

## ◆ ~infinint()

libdar::infinint::~infinint | ( |  | ) |
| inline

Definition at line 87 of file real_infinint.hpp.

## Variable Documentation

## ◆ algo_zip

std::string libdar::archive_summary::algo_zip
| private

compression algorithm

Definition at line 122 of file archive_summary.hpp.

## ◆ archive_size

infinint libdar::archive_summary::archive_size
| private

total size of the archive

Definition at line 116 of file archive_summary.hpp.

## ◆ asym

std::string libdar::archive_summary::asym
| private

asymetrical encryption

Definition at line 125 of file archive_summary.hpp.

## ◆ bytesize

template<class B>

const U_I libdar::limitint< B >::bytesize = sizeof(B)
| staticprivate

Definition at line 192 of file limitint.hpp.

## ◆ cat

catalogue* libdar::archive::i_archive::cat
| private

archive contents

Definition at line 212 of file i_archive.hpp.

Referenced by get_stats(), and set_to_unsaved_data_and_FSA().

## ◆ catalog_size

infinint libdar::archive_summary::catalog_size
| private

catalogue size if known, zero if not

Definition at line 117 of file archive_summary.hpp.

## ◆ cipher

std::string libdar::archive_summary::cipher
| private

encryption algorithm

Definition at line 124 of file archive_summary.hpp.

## ◆ compr_block_size

infinint libdar::archive_summary::compr_block_size
| private

compression block size, or zero if stream compression is used

Definition at line 129 of file archive_summary.hpp.

## ◆ contents

entree_stats libdar::archive_summary::contents
| private

nature of saved files

Definition at line 120 of file archive_summary.hpp.

## ◆ dar_extension

const char* libdar::dar_extension = "dar"
| constexpr

the default extension for dar archive

Definition at line 59 of file archive.hpp.

## ◆ data_size

infinint libdar::archive_summary::data_size
| private

amount of data saved (once uncompressed/unciphered)

Definition at line 119 of file archive_summary.hpp.

## ◆ edition

std::string libdar::archive_summary::edition
| private

archive format

Definition at line 121 of file archive_summary.hpp.

## ◆ exploitable

bool libdar::archive::i_archive::exploitable
| private

is false if only the catalogue is available (for reference backup or isolation).

Definition at line 214 of file i_archive.hpp.

## ◆ field [1/2]

storage* libdar::infinint::field
| private

Definition at line 152 of file real_infinint.hpp.

## ◆ field [2/2]

template<class B>

B libdar::limitint< B >::field
| private

Definition at line 175 of file limitint.hpp.

## ◆ first_slice_size

infinint libdar::archive_summary::first_slice_size
| private

slice of the first slices or zero if not applicable

Definition at line 111 of file archive_summary.hpp.

## ◆ gnupg_signed

std::list<signator> libdar::archive::i_archive::gnupg_signed
| private

list of signature found in the archive (reading an existing archive)

Definition at line 217 of file i_archive.hpp.

Referenced by get_signatories().

## ◆ in_place

std::string libdar::archive_summary::in_place
| private

in_place path empty string if absent

Definition at line 128 of file archive_summary.hpp.

## ◆ is_signed

bool libdar::archive_summary::is_signed
| private

whether the archive is signed

Definition at line 126 of file archive_summary.hpp.

## ◆ iteration_count

infinint libdar::archive_summary::iteration_count
| private

iteration count for KDF routine

Definition at line 131 of file archive_summary.hpp.

## ◆ kdf_hash

std::string libdar::archive_summary::kdf_hash
| private

kdf hash algo

Definition at line 132 of file archive_summary.hpp.

## ◆ last_slice_size

infinint libdar::archive_summary::last_slice_size
| private

slice of the last slice or zero if not applicable

Definition at line 112 of file archive_summary.hpp.

## ◆ lax_read_mode

bool libdar::archive::i_archive::lax_read_mode
| private

whether the archive has been openned in lax mode (unused for creation/merging/isolation)

Definition at line 215 of file i_archive.hpp.

## ◆ LIBDAR_COMPILE_TIME_MAJOR

U_I libdar::LIBDAR_COMPILE_TIME_MAJOR = 7
| constexpr

libdar Major version defined at compilation time

Definition at line 54 of file get_version.hpp.

## ◆ LIBDAR_COMPILE_TIME_MEDIUM

U_I libdar::LIBDAR_COMPILE_TIME_MEDIUM = 0
| constexpr

libdar Medium version defined at compilation time

Definition at line 56 of file get_version.hpp.

## ◆ LIBDAR_COMPILE_TIME_MINOR

U_I libdar::LIBDAR_COMPILE_TIME_MINOR = 0
| constexpr

libdar Minor version defined at compilation time

Definition at line 58 of file get_version.hpp.

## ◆ limitint< B >::used_endian

template<class B>

limitint<B>::endian libdar::limitint< B >::used_endian = not_initialized

Definition at line 249 of file limitint.hpp.

## ◆ limitint< B >::zeroed_field

template<class B>

U_8 libdar::limitint< B >::zeroed_field[ZEROED_SIZE]

Definition at line 199 of file limitint.hpp.

## ◆ local_cat_size

infinint libdar::archive::i_archive::local_cat_size
| private

size of the catalogue on disk

Definition at line 213 of file i_archive.hpp.

Referenced by get_entrepot().

## ◆ max_value

template<class B>

const B libdar::limitint< B >::max_value = ~B(0) > 0 ? ~B(0) : ~(B(1) << (bytesize*8 - 1))
| staticprivate

Definition at line 193 of file limitint.hpp.

## ◆ pimpl

std::shared_ptr<i_archive> libdar::archive::pimpl
| private

Definition at line 356 of file archive.hpp.

## ◆ proto_ftp

const remote_entrepot_type libdar::proto_ftp = remote_entrepot_type::ftp

Definition at line 52 of file remote_entrepot_api.hpp.

## ◆ proto_sftp

const remote_entrepot_type libdar::proto_sftp = remote_entrepot_type::sftp

Definition at line 53 of file remote_entrepot_api.hpp.

## ◆ ref_first_slice_size

infinint libdar::archive_summary::ref_first_slice_size
| private

slice of the first slice of the archive of reference

Definition at line 114 of file archive_summary.hpp.

## ◆ ref_slice_size

infinint libdar::archive_summary::ref_slice_size
| private

slice of the slice of the archive of reference

Definition at line 113 of file archive_summary.hpp.

## ◆ salt

std::string libdar::archive_summary::salt
| private

the salt

Definition at line 130 of file archive_summary.hpp.

## ◆ sequential_read

bool libdar::archive::i_archive::sequential_read
| private

whether the archive is read in sequential mode

Definition at line 216 of file i_archive.hpp.

## ◆ sizeof_field

template<class B>

const U_32 libdar::limitint< B >::sizeof_field = sizeof(B)
| staticprivate

Definition at line 186 of file limitint.hpp.

## ◆ slice_number

infinint libdar::archive_summary::slice_number
| private

number of slices composing the archive of zero if unknown

Definition at line 115 of file archive_summary.hpp.

## ◆ slice_size

infinint libdar::archive_summary::slice_size
| private

slice of the middle slice or zero if not applicable

Definition at line 110 of file archive_summary.hpp.

## ◆ slices

slice_layout libdar::archive::i_archive::slices
| private

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)

Definition at line 218 of file i_archive.hpp.

## ◆ stack

pile libdar::archive::i_archive::stack
| private

the different layer through which the archive contents is read or wrote

Definition at line 210 of file i_archive.hpp.

## ◆ storage_size

infinint libdar::archive_summary::storage_size
| private

amount of byte used to store (compressed/encrypted) data

Definition at line 118 of file archive_summary.hpp.

## ◆ tape_marks

bool libdar::archive_summary::tape_marks
| private

whether the archive has tape marks (for sequential reading)

Definition at line 127 of file archive_summary.hpp.

## ◆ TG [1/2]

int libdar::infinint::TG = 4
| staticconstexprprivate

Definition at line 147 of file real_infinint.hpp.

## ◆ TG [2/2]

template<class B>

const int libdar::limitint< B >::TG = 4
| staticprivate

Definition at line 185 of file limitint.hpp.

## ◆ used_endian [1/2]

endian libdar::infinint::used_endian
| staticprivate

Definition at line 170 of file real_infinint.hpp.

## ◆ used_endian [2/2]

template<class B>

endian libdar::limitint< B >::used_endian
| staticprivate

Definition at line 191 of file limitint.hpp.

## ◆ user_comment

std::string libdar::archive_summary::user_comment
| private

user comment

Definition at line 123 of file archive_summary.hpp.

## ◆ ver

header_version libdar::archive::i_archive::ver
| private

information for the archive header

Definition at line 211 of file i_archive.hpp.

## ◆ zeroed_field [1/2]

U_8 libdar::infinint::zeroed_field[ZEROED_SIZE]
| staticprivate

Definition at line 171 of file real_infinint.hpp.

## ◆ zeroed_field [2/2]

template<class B>

U_8 libdar::limitint< B >::zeroed_field[ZEROED_SIZE]
| staticprivate

Definition at line 194 of file limitint.hpp.

## Friends

## ◆ database

friend class database
| friend

Definition at line 360 of file archive.hpp.