![]() |
Disk ARchive 2.7.16
Full featured and portable backup and archiving tool
|
backward compatibility to libdar API 5 More...
#include "../my_config.h"
#include <string>
#include "compressor.hpp"
#include "path.hpp"
#include "mask.hpp"
#include "mask_list.hpp"
#include "integers.hpp"
#include "infinint.hpp"
#include "statistics.hpp"
#include "user_interaction.hpp"
#include "user_interaction_callback5.hpp"
#include "deci.hpp"
#include "archive5.hpp"
#include "crypto.hpp"
#include "thread_cancellation.hpp"
#include "compile_time_features.hpp"
#include "capabilities.hpp"
#include "entrepot_libcurl5.hpp"
#include "fichier_local.hpp"
#include "entrepot_local.hpp"
#include "data_tree.hpp"
#include "database5.hpp"
#include "tuyau.hpp"
#include "archive_aux.hpp"
#include "tools.hpp"
Go to the source code of this file.
Classes | |
class | libdar5::infinint |
the arbitrary large positive integer class More... | |
class | libdar5::Egeneric |
this is the parent class of all exception classes. More... | |
class | libdar5::Ememory |
exception used when memory has been exhausted More... | |
class | libdar5::Esecu_memory |
exception used when secure memory has been exhausted More... | |
class | libdar5::Ebug |
exception used to signal a bug. A bug is triggered when reaching some code that should never be reached More... | |
class | libdar5::Einfinint |
exception used when arithmetic error is detected when operating on infinint More... | |
class | libdar5::Elimitint |
exception used when a limitint overflow is detected, the maximum value of the limitint has been exceeded More... | |
class | libdar5::Edeci |
exception used to signal convertion problem between infinint and string (decimal representation) More... | |
class | libdar5::Erange |
exception used to signal range error More... | |
class | libdar5::Efeature |
exception used when a requested feature is not (yet) implemented More... | |
class | libdar5::Ehardware |
exception used when hardware problem is found More... | |
class | libdar5::Edata |
exception used when an error concerning the treated data has been met More... | |
class | libdar5::Euser_abort |
exception used to signal that the user has aborted the operation More... | |
class | libdar5::Escript |
exception used when error the inter-slice user command returned an error code More... | |
class | libdar5::Elibcall |
exception used to signal an error in the argument given to libdar call of the API More... | |
class | libdar5::Ecompilation |
exception used when a requested fearture has not beed activated at compilation time More... | |
class | libdar5::Ethread_cancel |
exception used when the thread libdar is running in is asked to stop More... | |
class | libdar5::Esystem |
exception used to carry system error More... | |
class | libdar5::secu_string |
class secu_string More... | |
struct | libdar5::signator |
signator status More... | |
class | libdar5::list_entry |
struct | libdar5::entree_stats |
holds the statistics contents of a catalogue More... | |
class | libdar5::mask |
the generic class, parent of all masks More... | |
class | libdar5::bool_mask |
boolean mask, either always true or false More... | |
class | libdar5::simple_mask |
matches as done on shell command lines (see "man 7 glob") More... | |
class | libdar5::regular_mask |
matches regular expressions (see "man 7 regex") More... | |
class | libdar5::not_mask |
negation of another mask More... | |
class | libdar5::et_mask |
makes an AND operator between two or more masks More... | |
class | libdar5::ou_mask |
makes the OR operator between two or more masks More... | |
class | libdar5::simple_path_mask |
string matches if it is subdir of mask or mask is a subdir of expression More... | |
class | libdar5::same_path_mask |
matches if string is exactly the given mask (no wilde card expression) More... | |
class | libdar5::exclude_dir_mask |
matches if string is the given constructor string or a sub directory of it More... | |
class | libdar5::deci |
decimal class, convert infinint from and to decimal represention More... | |
class | libdar5::thread_cancellation |
class to be used as parent to provide checkpoints to inherited classes More... | |
class | libdar5::archive_num |
class archive_num stores the position of an archive inside a dar_manager database More... | |
class | libdar5::criterium |
the generic criterium class, parent of all criterium More... | |
class | libdar5::crit_in_place_is_inode |
returns true if the first entry is an inode (whatever is the second) More... | |
class | libdar5::crit_in_place_is_dir |
returns true if the first entry is a cat_directory (whatever is the second) More... | |
class | libdar5::crit_in_place_is_file |
returns true if the first entry is a plain file (whatever is the second) More... | |
class | libdar5::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 | libdar5::crit_in_place_is_new_hardlinked_inode |
class | libdar5::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 | libdar5::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 | libdar5::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 | libdar5::crit_in_place_data_saved |
if the entry is not an inode the result is also true More... | |
class | libdar5::crit_in_place_data_dirty |
return true if the entry is a dirty file (or hard linked dirty file) More... | |
class | libdar5::crit_in_place_data_sparse |
return true if the entry is a sparse file (or hard linked sparse file) More... | |
class | libdar5::crit_in_place_has_delta_sig |
return true if the entry has delta signature More... | |
class | libdar5::crit_in_place_EA_present |
class | libdar5::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 | libdar5::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 | libdar5::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 | libdar5::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 | libdar5::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 | libdar5::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 | libdar5::crit_not |
realises the negation of the criterium given in argument to its constructor More... | |
class | libdar5::crit_and |
realises the AND operator More... | |
class | libdar5::crit_action |
the global action for overwriting More... | |
class | libdar5::crit_constant_action |
the basic constant action More... | |
class | libdar5::testing |
the testing class binds criterium to actions More... | |
class | libdar5::crit_chain |
the crit_chain class sequences crit_actions up to full definition of the action More... | |
class | libdar5::mask_list |
the mask_list class, matches string that are present in a given file More... | |
class | libdar5::generic_file |
this is the interface class from which all other data transfer classes inherit More... | |
class | libdar5::fichier_local |
filesystem local files More... | |
class | libdar5::memory_file |
generic_file stored in memory More... | |
class | libdar5::entrepot_local |
class | libdar5::datetime |
stores time information More... | |
class | libdar5::tuyau |
pipe implementation under the generic_file interface. More... |
Namespaces | |
namespace | libdar5 |
libdar5 namespace encapsulate all libdar symbols |
Macros | |
#define | LIBDAR_XXXXXXXX |
The following macro are used in the "exception" argument of the *_noexcept() functions. | |
#define | LIBDAR_NOEXCEPT 0 |
normal return no exception has been thrown | |
#define | LIBDAR_EMEMORY 1 |
memory has been exhausted | |
#define | LIBDAR_EBUG 2 |
internal bug error. | |
#define | LIBDAR_EINFININT 3 |
division by zero or other arithmetic error | |
#define | LIBDAR_ELIMITINT 4 |
limitint overflow | |
#define | LIBDAR_ERANGE 5 |
range error | |
#define | LIBDAR_EDECI 6 |
decimal representation error | |
#define | LIBDAR_EFEATURE 7 |
feature not (yet) implemented | |
#define | LIBDAR_EHARDWARE 8 |
hardware failure | |
#define | LIBDAR_EUSER_ABORT 9 |
user has aborted the operation | |
#define | LIBDAR_EDATA 10 |
data inconsistency, error concerning the treated data | |
#define | LIBDAR_ESCRIPT 11 |
inter slice script failure | |
#define | LIBDAR_ELIBCALL 12 |
libdar invalid call (wrong argument given to call, etc.) | |
#define | LIBDAR_UNKNOWN 13 |
unknown error | |
#define | LIBDAR_ECOMPILATION 14 |
feature not activated at compilation time | |
#define | LIBDAR_THREAD_CANCEL 15 |
thread cancellation has been requested |
Typedefs | |
using | libdar5::fsa_scope |
set of fsa families |
Enumerations | |
enum class | libdar5::compression |
the different compression algorithm available More... | |
enum class | libdar5::crypto_algo |
the different cypher available for encryption (strong or weak) More... | |
enum | libdar5::capa_status |
the EFFECTIVE set the value of the associated capability for the calling thread More... | |
enum | libdar5::over_action_data |
the possible actions for overwriting data More... | |
enum | libdar5::over_action_ea |
the possible action for overwriting EA More... | |
enum class | libdar5::hash_algo |
hashing algorithm available More... | |
enum | libdar5::fsa_family |
FSA family. More... | |
enum | libdar5::fsa_nature |
FSA nature. More... | |
enum | libdar5::gf_mode |
generic_file openning modes More... | |
enum | libdar5::mycurl_protocol |
libcurl protocols supported by libdar More... | |
enum class | libdar5::modified_data_detection |
how to detect data has changed when some fields More... | |
enum class | libdar5::comparison_fields |
how to consider file change during comparison and incremental backup More... |
Functions | |
compression | libdar5::char2compression (char a) |
char | libdar5::compression2char (compression c) |
std::string | libdar5::compression2string (compression c) |
compression | libdar5::string2compression (const std::string &a) |
fsa_scope | libdar5::all_fsa_families () |
mycurl_protocol | libdar5::string_to_mycurl_protocol (const std::string &arg) |
void | libdar5::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 | libdar5::get_version_noexcept (U_I &major, U_I &medium, U_I &minor, U_16 &exception, std::string &except_msg, bool init_libgcrypt=true) |
return the libdar version, and make libdar initialization (does not throw exceptions) | |
void | libdar5::close_and_clean () |
archive * | libdar5::open_archive_noexcept (user_interaction &dialog, const path &chem, const std::string &basename, const std::string &extension, const archive_options_read &options, U_16 &exception, std::string &except_msg) |
this is a wrapper around the archive constructor known as the "read" constructor | |
archive * | libdar5::create_archive_noexcept (user_interaction &dialog, const path &fs_root, const path &sauv_path, const std::string &filename, const std::string &extension, const archive_options_create &options, statistics *progressive_report, U_16 &exception, std::string &except_msg) |
this is a wrapper around the archive constructor known as the "create" constructor | |
archive * | libdar5::isolate_archive_noexcept (user_interaction &dialog, archive *ptr, const path &sauv_path, const std::string &filename, const std::string &extension, const archive_options_isolate &options, U_16 &exception, std::string &except_msg) |
this is a wrapper around the archive constructor known as the "isolate" constructor | |
archive * | libdar5::merge_archive_noexcept (user_interaction &dialog, const path &sauv_path, archive *ref_arch1, const std::string &filename, const std::string &extension, const archive_options_merge &options, statistics *progressive_report, U_16 &exception, std::string &except_msg) |
this is a wrapper around the archive constructor known as the "merging" constructor | |
void | libdar5::close_archive_noexcept (archive *ptr, U_16 &exception, std::string &except_msg) |
this is wrapper around the archive destructor | |
statistics | libdar5::op_extract_noexcept (user_interaction &dialog, archive *ptr, const path &fs_root, const archive_options_extract &options, statistics *progressive_report, U_16 &exception, std::string &except_msg) |
this is wrapper around the op_extract method | |
void | libdar5::op_listing_noexcept (user_interaction &dialog, archive *ptr, const archive_options_listing &options, U_16 &exception, std::string &except_msg) |
this is wrapper around the op_listing method | |
statistics | libdar5::op_diff_noexcept (user_interaction &dialog, archive *ptr, const path &fs_root, const archive_options_diff &options, statistics *progressive_report, U_16 &exception, std::string &except_msg) |
this is wrapper around the op_diff method | |
statistics | libdar5::op_test_noexcept (user_interaction &dialog, archive *ptr, const archive_options_test &options, statistics *progressive_report, U_16 &exception, std::string &except_msg) |
this is wrapper around the op_test method | |
bool | libdar5::get_children_of_noexcept (user_interaction &dialog, archive *ptr, const std::string &dir, U_16 &exception, std::string &except_msg) |
this is wrapper around the get_children_of method | |
char * | libdar5::libdar_str2charptr_noexcept (const std::string &x, U_16 &exception, std::string &except_msg) |
routine provided to convert std::string to char * | |
std::string | libdar5::tools_printf (const char *format,...) |
make printf-like formating to a std::string | |
std::string | libdar5::tools_getcwd () |
get current working directory | |
infinint | libdar5::tools_get_extended_size (std::string s, U_I base) |
convert the given string to infinint taking care of multiplication suffixes like k, M, T, etc. | |
bool | libdar5::tools_my_atoi (const char *a, U_I &val) |
ascii to integer conversion | |
U_I | libdar5::tools_octal2int (const std::string &perm) |
convert octal string to integer |
Variables | |
constexpr compression | libdar5::none = compression::none |
constexpr compression | libdar5::gzip = compression::gzip |
constexpr compression | libdar5::bzip2 = compression::bzip2 |
constexpr compression | libdar5::lzo = compression::lzo |
constexpr compression | libdar5::xz = compression::xz |
constexpr compression | libdar5::lzo1x_1_15 = compression::lzo1x_1_15 |
constexpr compression | libdar5::lzo1x_1 = compression::lzo1x_1 |
constexpr crypto_algo | libdar5::crypto_none = crypto_algo::none |
constexpr crypto_algo | libdar5::crypto_scrambling = crypto_algo::scrambling |
constexpr crypto_algo | libdar5::crypto_blowfish = crypto_algo::blowfish |
constexpr crypto_algo | libdar5::crypto_aes256 = crypto_algo::aes256 |
constexpr crypto_algo | libdar5::crypto_twofish256 = crypto_algo::twofish256 |
constexpr crypto_algo | libdar5::crypto_serpent256 = crypto_algo::serpent256 |
constexpr crypto_algo | libdar5::crypto_camellia256 = crypto_algo::camellia256 |
constexpr capa_status | libdar5::capa_set = libdar::capa_status::capa_set |
constexpr capa_status | libdar5::capa_clear = libdar::capa_status::capa_clear |
constexpr capa_status | libdar5::capa_unknown = libdar::capa_status::capa_unknown |
constexpr over_action_data | libdar5::data_preserve = libdar::over_action_data::data_preserve |
constexpr over_action_data | libdar5::data_overwrite = libdar::over_action_data::data_overwrite |
constexpr over_action_data | libdar5::data_preserve_mark_already_saved = libdar::over_action_data::data_preserve_mark_already_saved |
constexpr over_action_data | libdar5::data_overwrite_mark_already_saved = libdar::over_action_data::data_overwrite_mark_already_saved |
constexpr over_action_data | libdar5::data_remove = libdar::over_action_data::data_remove |
constexpr over_action_data | libdar5::data_undefined = libdar::over_action_data::data_undefined |
constexpr over_action_data | libdar5::data_ask = libdar::over_action_data::data_ask |
constexpr over_action_ea | libdar5::EA_preserve = libdar::over_action_ea::EA_preserve |
constexpr over_action_ea | libdar5::EA_overwrite = libdar::over_action_ea::EA_overwrite |
constexpr over_action_ea | libdar5::EA_clear = libdar::over_action_ea::EA_clear |
constexpr over_action_ea | libdar5::EA_preserve_mark_already_saved = libdar::over_action_ea::EA_preserve_mark_already_saved |
constexpr over_action_ea | libdar5::EA_overwrite_mark_already_saved = libdar::over_action_ea::EA_overwrite_mark_already_saved |
constexpr over_action_ea | libdar5::EA_merge_preserve = libdar::over_action_ea::EA_merge_preserve |
constexpr over_action_ea | libdar5::EA_merge_overwrite = libdar::over_action_ea::EA_merge_overwrite |
constexpr over_action_ea | libdar5::EA_undefined = libdar::over_action_ea::EA_undefined |
constexpr over_action_ea | libdar5::EA_ask = libdar::over_action_ea::EA_ask |
constexpr hash_algo | libdar5::hash_none = hash_algo::none |
constexpr hash_algo | libdar5::hash_md5 = hash_algo::md5 |
constexpr hash_algo | libdar5::hash_sha1 = hash_algo::sha1 |
constexpr hash_algo | libdar5::hash_sha512 = hash_algo::sha512 |
constexpr fsa_family | libdar5::fsaf_hfs_plus = fsa_family::fsaf_hfs_plus |
constexpr fsa_family | libdar5::fsaf_linux_extX = fsa_family::fsaf_linux_extX |
constexpr fsa_nature | libdar5::fsan_unset = fsa_nature::fsan_unset |
constexpr fsa_nature | libdar5::fsan_creation_date = fsa_nature::fsan_creation_date |
constexpr fsa_nature | libdar5::fsan_append_only = fsa_nature::fsan_append_only |
constexpr fsa_nature | libdar5::fsan_compressed = fsa_nature::fsan_compressed |
constexpr fsa_nature | libdar5::fsan_no_dump = fsa_nature::fsan_no_dump |
constexpr fsa_nature | libdar5::fsan_immutable = fsa_nature::fsan_immutable |
constexpr fsa_nature | libdar5::fsan_data_journaling = fsa_nature::fsan_data_journaling |
constexpr fsa_nature | libdar5::fsan_secure_deletion = fsa_nature::fsan_secure_deletion |
constexpr fsa_nature | libdar5::fsan_no_tail_merging = fsa_nature::fsan_no_tail_merging |
constexpr fsa_nature | libdar5::fsan_undeletable = fsa_nature::fsan_undeletable |
constexpr fsa_nature | libdar5::fsan_noatime_update = fsa_nature::fsan_noatime_update |
constexpr fsa_nature | libdar5::fsan_synchronous_directory = fsa_nature::fsan_synchronous_directory |
constexpr fsa_nature | libdar5::fsan_synchronous_udpdate = fsa_nature::fsan_synchronous_update |
constexpr fsa_nature | libdar5::fsan_top_of_dir_hierarchy = fsa_nature::fsan_top_of_dir_hierarchy |
constexpr gf_mode | libdar5::gf_read_only = gf_mode::gf_read_only |
constexpr gf_mode | libdar5::gf_write_only = gf_mode::gf_write_only |
constexpr gf_mode | libdar5::gf_read_write = gf_mode::gf_read_write |
constexpr mycurl_protocol | libdar5::proto_ftp = mycurl_protocol::proto_ftp |
constexpr mycurl_protocol | libdar5::proto_sftp = mycurl_protocol::proto_sftp |
constexpr comparison_fields | libdar5::cf_all = comparison_fields::all |
constexpr comparison_fields | libdar5::cf_ignore_owner = comparison_fields::ignore_owner |
constexpr comparison_fields | libdar5::cf_mtime = comparison_fields::mtime |
constexpr comparison_fields | libdar5::cf_inode_type = comparison_fields::inode_type |
const U_I | libdar5::LIBDAR_COMPILE_TIME_MAJOR = 5 |
libdar Major version defined at compilation time | |
const U_I | libdar5::LIBDAR_COMPILE_TIME_MEDIUM = 202 |
libdar Medium version defined at compilation time | |
const U_I | libdar5::LIBDAR_COMPILE_TIME_MINOR = 0 |
libdar Minor version defined at compilation time |
backward compatibility to libdar API 5
Definition in file libdar5.hpp.