Loading...
Searching...
No Matches
libdar::archive::i_archive Class Reference
API

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

`#include <i_archive.hpp>`

Inherits libdar::mem_ui.

## 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
| mem_ui (const mem_ui &ref)=default
| the copy constructor
| mem_ui (mem_ui &&ref) noexcept=default
| the move constructor
mem_ui & | operator= (const mem_ui &ref)=default
| assignement operator
mem_ui & | operator= (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 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
std::shared_ptr< user_interaction > | get_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:

- i_archive.hpp