Disk ARchive 2.7.16
Full featured and portable backup and archiving tool
Loading...
Searching...
No Matches
libdar::archive::i_archive Class Reference

the archive::i_archive class implements the most general operations on archives More...

#include <i_archive.hpp>

Inheritance diagram for libdar::archive::i_archive:
Collaboration diagram for libdar::archive::i_archive:

Public Member Functions

 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]
 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]
 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]
 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]
 i_archive (const i_archive &ref)=delete
 copy constructor (not implemented, throw an exception if called explicitely or implicitely)
 i_archive (i_archive &&ref)=delete
i_archiveoperator= (const i_archive &ref)=delete
i_archiveoperator= (i_archive &&ref)=delete
 ~i_archive ()
 the destructor
statistics op_extract (const path &fs_root, const archive_options_extract &options, statistics *progressive_report)
 extraction of data from an archive
void summary ()
 display a summary of the archive
archive_summary summary_data ()
 same information as summary() but as broken out data
void op_listing (archive_listing_callback callback, void *context, const archive_options_listing &options) const
 listing of the archive contents
statistics op_diff (const path &fs_root, const archive_options_diff &options, statistics *progressive_report)
 archive comparison with filesystem
statistics op_test (const archive_options_test &options, statistics *progressive_report)
 test the archive integrity
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
bool 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_entryget_children_in_table (const std::string &dir, bool fetch_ea=false) const
 getting information about the given directory (alternative to get_children_of)
bool has_subdirectory (const std::string &dir) const
 returns true if the pointed directory has one or more subdirectories
const entree_stats get_stats () const
 retrieving statistics about archive contents
const std::list< signator > & get_signatories () const
 retrieving signature information about the archive
void init_catalogue () const
const catalogueget_catalogue () const
 gives access to internal catalogue (not to be used from the API)
void drop_all_filedescriptors ()
 closes all filedescriptors and associated even when in sequential read mode
void set_to_unsaved_data_and_FSA ()
 change all inode as unsaved (equal to differential backup with no change met)
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
U_64 get_first_slice_header_size () const
 get the first slice header
U_64 get_non_first_slice_header_size () const
 get the non first slice header
Public Member Functions inherited from libdar::mem_ui
 mem_ui (const std::shared_ptr< user_interaction > &dialog)
 constructor
 mem_ui (const mem_ui &ref)=default
 the copy constructor
 mem_ui (mem_ui &&ref) noexcept=default
 the move constructor
mem_uioperator= (const mem_ui &ref)=default
 assignement operator
mem_uioperator= (mem_ui &&ref) noexcept=default
 move operator
virtual ~mem_ui () noexcept(false)
 destructor

Private Types

enum  operation { oper_create , oper_isolate , oper_merge , oper_repair }

Private Member Functions

void free_mem ()
void check_gnupg_signed () const
const catalogueget_cat () const
const header_versionget_header () const
bool get_sar_param (infinint &sub_file_size, infinint &first_file_size, infinint &last_file_size, infinint &total_file_number)
std::shared_ptr< entrepotget_entrepot ()
 this method may return nullptr if no entrepot is used (pipes used for archive building, etc.)
infinint get_level2_size ()
infinint get_cat_size () const
statistics 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, statistics *progressive_report)
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, 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, statistics *st_ptr)
void disable_natural_destruction ()
void enable_natural_destruction ()
const labelget_layer1_data_name () const
const labelget_catalogue_data_name () const
bool only_contains_an_isolated_catalogue () const
 true if the current archive only contains an isolated catalogue
void check_against_isolation (bool lax) const
 throw Erange exception if the archive only contains an isolated catalogue
const cat_directoryget_dir_object (const std::string &dir) const
void load_catalogue ()

Private Attributes

pile stack
 the different layer through which the archive contents is read or wrote
header_version ver
 information for the archive header
cataloguecat
 archive contents
infinint local_cat_size
 size of the catalogue on disk
bool exploitable
 is false if only the catalogue is available (for reference backup or isolation).
bool lax_read_mode
 whether the archive has been openned in lax mode (unused for creation/merging/isolation)
bool sequential_read
 whether the archive is read in sequential mode
std::list< signatorgnupg_signed
 list of signature found in the archive (reading an existing archive)
slice_layout 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)

Additional Inherited Members

Protected Member Functions inherited from libdar::mem_ui
user_interactionget_ui () const
 get access to the user_interaction object
std::shared_ptr< user_interactionget_pointer () const
 get access to the shared_ptr pointing to the user_interaction

Detailed Description

the archive::i_archive class implements the most general operations on archives

Definition at line 58 of file i_archive.hpp.


The documentation for this class was generated from the following file: