Disk ARchive
2.7.15
Full featured and portable backup and archiving tool
|
the archive::i_archive class implements the most general operations on archives More...
#include <i_archive.hpp>
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) | |
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_archive & | operator= (const i_archive &ref)=delete |
i_archive & | operator= (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_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 | 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 catalogue & | get_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 More... | |
mem_ui (const mem_ui &ref)=default | |
the copy constructor More... | |
mem_ui (mem_ui &&ref) noexcept=default | |
the move constructor | |
mem_ui & | operator= (const mem_ui &ref)=default |
assignement operator More... | |
mem_ui & | operator= (mem_ui &&ref) noexcept=default |
move operator | |
virtual | ~mem_ui () noexcept(false) |
destructor More... | |
Private Types | |
enum | operation { oper_create , oper_isolate , oper_merge , oper_repair } |
Private Member Functions | |
void | free_mem () |
void | check_gnupg_signed () const |
const catalogue & | get_cat () const |
const header_version & | get_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< entrepot > | get_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 label & | get_layer1_data_name () const |
const label & | get_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_directory * | get_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 | |
catalogue * | cat |
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< signator > | gnupg_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_interaction & | get_ui () const |
get access to the user_interaction object More... | |
std::shared_ptr< user_interaction > | get_pointer () const |
get access to the shared_ptr pointing to the user_interaction | |
the archive::i_archive class implements the most general operations on archives
Definition at line 58 of file i_archive.hpp.