Disk ARchive 2.7.16
Full featured and portable backup and archiving tool
Loading...
Searching...
No Matches
libdar5.hpp File Reference

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"
Include dependency graph for libdar5.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 ()
archivelibdar5::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
archivelibdar5::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
archivelibdar5::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
archivelibdar5::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

Detailed Description

backward compatibility to libdar API 5

Definition in file libdar5.hpp.