30 #include "../my_config.h"
63 const std::string & basename,
64 const std::string & extension,
90 const path & sauv_path,
91 const std::string & filename,
92 const std::string & extension,
106 const path &sauv_path,
108 const std::string & filename,
109 const std::string & extension,
131 const path & sauv_path,
133 const std::string & filename,
134 const std::string & extension,
145 archive(
const archive & ref) : stack(ref.stack) {
throw Efeature(gettext(
"Archive copy constructor is not implemented")); };
146 archive & operator = (
const archive & ref) {
throw Efeature(gettext(
"Archive assignment operator is not implemented")); };
205 const path & fs_root,
206 const archive_options_diff & options,
246 const std::string & dir);
278 enum operation { oper_create, oper_isolate, oper_merge };
283 infinint local_cat_size;
287 bool sequential_read;
290 catalogue & get_cat() {
if(cat == NULL)
throw SRC_BUG;
else return *cat; };
291 const header_version & get_header()
const {
return ver; };
292 const path & get_path() {
if(local_path == NULL)
throw SRC_BUG;
else return *local_path; };
294 bool get_sar_param(infinint & sub_file_size, infinint & first_file_size, infinint & last_file_size,
295 infinint & total_file_number);
296 infinint get_level2_size();
297 infinint get_cat_size()
const {
return local_cat_size; };
299 statistics op_create_in(user_interaction & dialog,
301 const path & fs_root,
302 const path & sauv_path,
304 const mask & selection,
305 const mask & subtree,
306 const std::string & filename,
307 const std::string & extension,
311 const infinint & pause,
314 U_I compression_level,
315 const infinint & file_size,
316 const infinint & first_file_size,
317 const mask & ea_mask,
318 const std::string & execute,
320 const secu_string & pass,
322 const mask & compr_mask,
323 const infinint & min_compr_size,
325 const infinint & hourshift,
328 bool furtive_read_mode,
332 bool cache_directory_tagging,
333 bool display_skipped,
334 const infinint & fixed_date,
335 const std::string & slice_permission,
336 const std::string & slice_user_ownership,
337 const std::string & slice_group_ownership,
338 const infinint & repeat_count,
339 const infinint & repeat_byte,
340 bool add_marks_for_sequential_reading,
342 const infinint & sparse_file_min_size,
343 const std::string & user_comment,
345 const infinint & slice_min_digits,
346 const std::string & backup_hook_file_execute,
347 const mask & backup_hook_file_mask,
349 statistics * progressive_report);
351 void op_create_in_sub(user_interaction & dialog,
353 const path & fs_root,
354 const path & sauv_path_t,
355 catalogue * ref_arch1,
356 catalogue * ref_arch2,
357 const path * ref_path,
358 const mask & selection,
359 const mask & subtree,
360 const std::string & filename,
361 const std::string & extension,
363 const crit_action & overwrite,
366 const infinint & pause,
369 U_I compression_level,
370 const infinint & file_size,
371 const infinint & first_file_size,
372 const mask & ea_mask,
373 const std::string & execute,
375 const secu_string & pass,
377 const mask & compr_mask,
378 const infinint & min_compr_size,
380 const infinint & hourshift,
383 bool furtive_read_mode,
387 bool cache_directory_tagging,
388 bool display_skipped,
389 bool keep_compressed,
390 const infinint & fixed_date,
391 const std::string & slice_permission,
392 const std::string & slice_user_ownership,
393 const std::string & slice_group_ownership,
394 const infinint & repeat_count,
395 const infinint & repeat_byte,
397 bool add_marks_for_sequential_reading,
399 const infinint & sparse_file_min_size,
400 const std::string & user_comment,
402 const infinint & slice_min_digits,
403 const std::string & backup_hook_file_execute,
404 const mask & backup_hook_file_mask,
406 statistics * st_ptr);
408 void disable_natural_destruction();
409 void enable_natural_destruction();
410 const label & get_layer1_data_name()
const;
411 const label & get_catalogue_data_name()
const;
412 bool only_contains_an_isolated_catalogue()
const;
413 void check_against_isolation(user_interaction & dialog,
bool lax)
const;
414 void check_header_version()
const;
statistics op_extract(user_interaction &dialog, const path &fs_root, const archive_options_extract &options, statistics *progressive_report)
extraction of data from an archive
const catalogue & get_catalogue() const
gives access to internal catalogue (not to be used from the API)
the catalogue class which gather all objects contained in a give archive
holds the statistics contents of a catalogue
statistics op_diff(user_interaction &dialog, const path &fs_root, const archive_options_diff &options, statistics *progressive_report)
archive comparison with filesystem
class holding optional parameters used to test the structure coherence of an existing archive ...
archive(const archive &ref)
copy constructor (not implemented, throw an exception if called explicitely or implicitely) ...
class pile definition. Used to manage a stack of generic_file objects
const entree_stats get_stats() const
retrieving statistics about archive contents
This is a pure virtual class that is used by libdar when interaction with the user is required...
comparison_fields
flag used to only consider certain fields when comparing/restoring inodes
the archive class realizes the most general operations on archives
crypto_algo
the different cypher available for encryption (strong or weak)
here is the definition of the path classthe path class handle path and provide several operation on t...
class escape_catalogue definition. Used for sequential writing to archives, as well as several other ...
exception used when a requested feature is not (yet) implemented
handle the statistic structure that gives a summary of treated files after each operatio ...
class escape definition, used for sequential reading of archivesThe class escape is used to insert es...
archive(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] ...
void summary(user_interaction &dialog)
display a summary of the archive
compression
the different compression algorithm available
this file contains a set of classes used to transmit options to archive operation ...
bool nodump()
returns whether nodump flag support has been activated at compilation time
void drop_all_filedescriptors()
closes all filedescriptors and associated data, just keep the catalogue
void op_listing(user_interaction &dialog, const archive_options_listing &options)
listing of the archive contents
contains the definition of the scrambler class, a very weak encryption scheme
class holding optional parameters used to list the contents of an existing archive ...
class holding optional parameters used to read an existing archive
class holding optional parameters used to proceed to the merge operation
statistics op_test(user_interaction &dialog, const archive_options_test &options, statistics *progressive_report)
test the archive integrity
class holding optional parameters used to create an archive
class holding optional parameters used to isolate an existing archive
bool get_children_of(user_interaction &dialog, const std::string &dir)
getting information about a given directory
structure returned by libdar call to give a summary of the operation done in term of file treated ...
the class path is here to manipulate paths in the Unix notation: using'/'