 |
Disk ARchive
2.6.8
Full featured and portable backup and archiving tool
|
Go to the documentation of this file.
30 #include "../my_config.h"
64 i_archive(
const std::shared_ptr<user_interaction> & dialog,
66 const std::string & basename,
67 const std::string & extension,
73 i_archive(
const std::shared_ptr<user_interaction> & dialog,
75 const path & sauv_path,
76 const std::string & filename,
77 const std::string & extension,
83 i_archive(
const std::shared_ptr<user_interaction> & dialog,
84 const path & sauv_path,
85 std::shared_ptr<archive> ref_arch1,
86 const std::string & filename,
87 const std::string & extension,
93 i_archive(
const std::shared_ptr<user_interaction> & dialog,
94 const path & chem_src,
95 const std::string & basename_src,
96 const std::string & extension_src,
98 const path & chem_dst,
99 const std::string & basename_dst,
100 const std::string & extension_dst,
138 const archive_options_diff & options,
151 const std::string & filename,
152 const std::string & extension,
160 const std::string & dir,
161 bool fetch_ea =
false);
165 const std::vector<list_entry>
get_children_in_table(
const std::string & dir,
bool fetch_ea =
false)
const;
205 enum operation { oper_create, oper_isolate, oper_merge, oper_repair };
218 void check_gnupg_signed()
const;
220 const catalogue & get_cat()
const {
if(
cat ==
nullptr)
throw SRC_BUG;
else return *
cat; };
229 statistics op_create_in(operation op,
230 const path & fs_root,
231 const std::shared_ptr<entrepot> & sauv_path_t,
233 const mask & selection,
234 const mask & subtree,
235 const std::string & filename,
236 const std::string & extension,
240 bool display_treated,
241 bool display_treated_only_dir,
242 bool display_skipped,
243 bool display_finished,
244 const infinint & pause,
247 U_I compression_level,
248 const infinint & file_size,
249 const infinint & first_file_size,
250 const mask & ea_mask,
251 const std::string & execute,
253 const secu_string & pass,
255 const std::vector<std::string> & gnupg_recipients,
256 const std::vector<std::string> & gnupg_signatories,
257 const mask & compr_mask,
258 const infinint & min_compr_size,
260 const std::string & exclude_by_ea,
261 const infinint & hourshift,
264 bool furtive_read_mode,
268 bool cache_directory_tagging,
269 const infinint & fixed_date,
270 const std::string & slice_permission,
271 const infinint & repeat_count,
272 const infinint & repeat_byte,
273 bool add_marks_for_sequential_reading,
275 const infinint & sparse_file_min_size,
276 const std::string & user_comment,
278 const infinint & slice_min_digits,
279 const std::string & backup_hook_file_execute,
280 const mask & backup_hook_file_mask,
284 bool delta_signature,
285 bool build_delta_sig,
286 const mask & delta_mask,
287 const infinint & delta_sig_min_size,
289 bool zeroing_neg_date,
290 const std::set<std::string> & ignored_symlinks,
292 const infinint & iteration_count,
294 const delta_sig_block_size & sig_block_len,
295 statistics * progressive_report);
298 const path & fs_root,
299 const std::shared_ptr<entrepot> & sauv_path_t,
300 catalogue * ref_cat1,
301 const catalogue * ref_cat2,
303 const mask & selection,
304 const mask & subtree,
305 const std::string & filename,
306 const std::string & extension,
308 const crit_action & overwrite,
311 bool display_treated,
312 bool display_treated_only_dir,
313 bool display_skipped,
314 bool display_finished,
315 const infinint & pause,
318 U_I compression_level,
319 const infinint & file_size,
320 const infinint & first_file_size,
321 const mask & ea_mask,
322 const std::string & execute,
324 const secu_string & pass,
326 const std::vector<std::string> & gnupg_recipients,
327 const std::vector<std::string> & gnupg_signatories,
328 const mask & compr_mask,
329 const infinint & min_compr_size,
331 const std::string & exclude_by_ea,
332 const infinint & hourshift,
335 bool furtive_read_mode,
339 bool cache_directory_tagging,
340 bool keep_compressed,
341 const infinint & fixed_date,
342 const std::string & slice_permission,
343 const infinint & repeat_count,
344 const infinint & repeat_byte,
346 bool add_marks_for_sequential_reading,
348 const infinint & sparse_file_min_size,
349 const std::string & user_comment,
351 const infinint & slice_min_digits,
352 const std::string & backup_hook_file_execute,
353 const mask & backup_hook_file_mask,
357 bool delta_signature,
358 bool build_delta_sig,
359 const mask & delta_mask,
360 const infinint & delta_sig_min_size,
362 bool zeroing_neg_date,
363 const std::set<std::string> & ignored_symlinks,
365 const infinint & iteration_count,
367 const delta_sig_block_size & sign_block_len,
371 void disable_natural_destruction();
372 void enable_natural_destruction();
373 const label & get_layer1_data_name()
const;
374 const label & get_catalogue_data_name()
const;
377 const cat_directory *get_dir_object(
const std::string & dir)
const;
378 void load_catalogue();
archive_summary summary_data()
same information as summary() but as broken out data
hash_algo
hashing algorithm available
bool only_contains_an_isolated_catalogue() const
true if the current archive only contains an isolated catalogue
the archive class is defined in this module
std::shared_ptr< entrepot > get_entrepot()
this method may return nullptr if no entrepot is used (pipes used for archive building,...
infinint local_cat_size
size of the catalogue on disk
header_version ver
information for the archive header
void init_catalogue() const
~i_archive()
the destructor
compression
the different compression algorithm available
stores a stack of generic_files writing/reading on each others
void 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, 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, bool 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, bool multi_threaded, bool delta_signature, bool build_delta_sig, const mask &delta_mask, const infinint &delta_sig_min_size, bool delta_diff, bool zeroing_neg_date, const std::set< std::string > &ignored_symlinks, modified_data_detection mod_data_detect, const infinint &iteration_count, hash_algo kdf_hash, const delta_sig_block_size &sign_block_len, statistics *st_ptr)
void check_against_isolation(bool lax) const
throw Erange exception if the archive only contains an isolated catalogue
void(*)(const std::string &the_path, const list_entry &entry, void *context) archive_listing_callback
callback function type expected for archive::op_listing and archive::get_children_of()
class of objects describing an entry in the archive, used by archive::get_children_in_table
the arbitrary large positive integer class
bool 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
statistics op_test(const archive_options_test &options, statistics *progressive_report)
test the archive integrity
void summary()
display a summary of the archive
bool nodump() noexcept
returns whether nodump flag support has been activated at compilation time
void drop_all_filedescriptors()
closes all filedescriptors and associated even when in sequential read mode
holds the statistics contents of a catalogue
statistics op_extract(const path &fs_root, const archive_options_extract &options, statistics *progressive_report)
extraction of data from an archive
const std::vector< list_entry > 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 get_children_of(archive_listing_callback callback, void *context, const std::string &dir, bool fetch_ea=false)
getting information about a given directory
std::list< signator > gnupg_signed
list of signature found in the archive (reading an existing archive)
class mem_ui to keep a copy of a user_interaction object
pile stack
the different layer through which the archive contents is read or wrote
contains all the excetion class thrown by libdar
class holding optional parameters used to list the contents of an existing archive
U_64 get_non_first_slice_header_size() const
get the non first slice header
object describing the slicing of an archive
class holding optional parameters used to create an archive
this file contains a set of classes used to transmit options to archive operation
the class path is here to manipulate paths in the Unix notation: using'/'
class used by libdar::archive class to give a summary of treated file during and after an operation
bool exploitable
is false if only the catalogue is available (for reference backup or isolation).
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]
class holding optional parameters used to read an existing archive
the archive_summary class provides information about a given archive
bool has_subdirectory(const std::string &dir) const
returns true if the pointed directory has one or more subdirectories
class handling access to the data summary of treated files after and during each operation
class holding optional parameters used to test the structure coherence of an existing archive
class holding optional parameters used to proceed to the merge operation
class pile definition. Used to manage a stack of generic_file objects
bool lax_read_mode
whether the archive has been openned in lax mode (unused for creation/merging/isolation)
the archive::i_archive class implements the most general operations on archives
comparison_fields
how to consider file change during comparison and incremental backup
catalogue * cat
archive contents
const entree_stats get_stats() const
retrieving statistics about archive contents
class holding optional parameters used to create an archive
statistics op_diff(const path &fs_root, const archive_options_diff &options, statistics *progressive_report)
archive comparison with filesystem
crypto_algo
the different cypher available for encryption (strong or weak)
const std::list< signator > & get_signatories() const
retrieving signature information about the archive
datastructure returned by archive::summary_data
the catalogue class which gather all objects contained in a give 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]
U_64 get_first_slice_header_size() const
get the first slice header
here is defined the classe used to manage catalogue of archives
bool sequential_read
whether the archive is read in sequential mode
class holding optional parameters used to isolate an existing archive
the crypto algoritm definition
const catalogue & get_catalogue() const
gives access to internal catalogue (not to be used from the API)
here is the definition of the path class
modified_data_detection
how to detect data has changed when some fields
slice_layout slices
slice layout, archive is not sliced <=> first_size or other_size fields is set to zero (in practice b...
void 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
definition of the user defined callback function used for archive listing
void set_to_unsaved_data_and_FSA()
change all inode as unsaved (equal to differential backup with no change met)
void op_listing(archive_listing_callback callback, void *context, const archive_options_listing &options) const
listing of the archive contents
std::set< fsa_family > fsa_scope
set of fsa families
class mem_ui definition. This class is to be used as parent class to handle user_interaction object m...
libdar namespace encapsulate all libdar symbols