| Disk ARchive 2.6.12 Full featured and portable backup and archiving tool

Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
libdar::catalogue Class Reference
Private

the catalogue class which gather all objects contained in a give archive More...

`#include <catalogue.hpp>`

Inherits libdar::mem_ui.

Inherited by libdar::escape_catalogue.

## Public Member Functions
| catalogue (const std::shared_ptr< user_interaction > &ui, const datetime &root_last_modif, const label &data_name)
| catalogue (const std::shared_ptr< user_interaction > &ui, const pile_descriptor &pdesc, const archive_version &reading_ver, compression default_algo, bool lax, const label &lax_layer1_data_name, bool only_detruit=false)
| catalogue (const catalogue &ref)
| catalogue (catalogue &&ref)=delete
catalogue & | operator= (const catalogue &ref)
catalogue & | operator= (catalogue &&ref)=delete
virtual void | reset_read () const
virtual void | end_read () const
virtual void | skip_read_to_parent_dir () const
virtual bool | read (const cat_entree *&ref) const
virtual bool | read_if_present (std::string *name, const cat_nomme *&ref) const
void | remove_read_entry (std::string &name)
const cat_directory & | get_current_reading_dir () const
virtual void | tail_catalogue_to_current_read ()
void | reset_sub_read (const path &sub)
bool | sub_read (user_interaction &ui, const cat_entree *&ref)
virtual bool | read_second_time_dir () const
void | reset_add ()
virtual void | pre_add (const cat_entree *ref, const pile_descriptor *dest=nullptr) const
| catalogue extension routines for escape sequence
virtual void | pre_add_ea (const cat_entree *ref, const pile_descriptor *dest=nullptr) const
virtual void | pre_add_crc (const cat_entree *ref, const pile_descriptor *dest=nullptr) const
virtual void | pre_add_dirty (const pile_descriptor *dest=nullptr) const
virtual void | pre_add_ea_crc (const cat_entree *ref, const pile_descriptor *dest=nullptr) const
virtual void | pre_add_waste_mark (const pile_descriptor *dest=nullptr) const
virtual void | pre_add_failed_mark (const pile_descriptor *dest=nullptr) const
virtual void | pre_add_fsa (const cat_entree *ref, const pile_descriptor *dest=nullptr) const
virtual void | pre_add_fsa_crc (const cat_entree *ref, const pile_descriptor *dest=nullptr) const
virtual void | pre_add_delta_sig (const pile_descriptor *dest=nullptr) const
virtual escape * | get_escape_layer () const
virtual void | drop_escape_layer ()
void | add (cat_entree *ref)
void | re_add_in (const std::string &subdirname)
void | re_add_in_replace (const cat_directory &dir)
void | add_in_current_read (cat_nomme *ref)
const cat_directory & | get_current_add_dir () const
void | reset_compare () const
bool | compare (const cat_entree *name, const cat_entree *&extracted) const
infinint | update_destroyed_with (const catalogue &ref)
| add into "this" detruit object corresponding to object of ref absent in "this" More...
void | update_absent_with (const catalogue &ref, infinint aborting_next_etoile)
| copy from ref missing files in "this" and mark then as "not_saved" (no change since reference) More...
void | drop_all_non_detruits ()
| remove/destroy from "this" all objects that are neither directory nor detruit objects
bool | is_subset_of (const catalogue &ref) const
| check whether all inode existing in the "this" and ref have the same attributes More...
void | reset_dump () const
| before dumping the catalogue, need to set all hardlinked inode they have not been saved once
void | dump (const pile_descriptor &pdesc) const
| write down the whole catalogue to file
entree_stats | get_stats () const
bool | is_empty () const
| whether the catalogue is empty or not
const cat_directory * | get_contenu () const
const label & | get_data_name () const
void | set_data_name (const label &val)
datetime | get_root_dir_last_modif () const
void | launch_recursive_has_changed_update () const
| recursive evaluation of directories that have changed (make the cat_directory::get_recurisve_has_changed() method of entry in this catalogue meaningful)
void | set_all_mirage_s_inode_wrote_field_to (bool val) const
| recursive setting of mirage inode_wrote flag
datetime | get_root_mtime () const
void | reset_all ()
| reset all pointers to the root (a bit better than reset_add() + reset_read() + reset_compare() + reset_sub_read())
void | set_to_unsaved_data_and_FSA ()
void | change_location (const pile_descriptor &pdesc)
| change location where to find EA, FSA and DATA for all the objects of the catalogue
void | transfer_delta_signatures (const pile_descriptor &destination, bool sequential_read, bool build, const mask &delta_mask, const infinint &delta_sig_min_size, const delta_sig_block_size &signature_block_size)
| copy delta signatures to the given stack and update the cat_file objects accordingly More...
void | drop_delta_signatures ()
| remove delta signature from the catalogue object as if they had never been calculated
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...

## Protected Member Functions
entree_stats & | access_stats ()
void | copy_detruits_from (const catalogue &ref)
const cat_eod * | get_r_eod_address () const
void | swap_stuff (catalogue &ref)
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

## Private Member Functions
void | partial_copy_from (const catalogue &ref)
void | detruire ()

## Private Attributes
cat_directory * | contenu
| catalogue contents
path | out_compare
| stores the missing directory structure, when extracting
cat_directory * | current_compare
| points to the current directory when extracting
cat_directory * | current_add
| points to the directory where to add the next file with add_file;
cat_directory * | current_read
| points to the directory where the next item will be read
path * | sub_tree
| path to sub_tree
signed int | sub_count
| count the depth in of read routine in the sub_tree
entree_stats | stats
| statistics catalogue contents
label | ref_data_name
| name of the archive where is located the data

## Static Private Attributes
static const cat_eod | r_eod
| needed to return eod reference, without taking risk of saturating memory
static const U_I | CAT_CRC_SIZE

## Detailed Description

the catalogue class which gather all objects contained in a give archive

Definition at line 60 of file catalogue.hpp.

## Member Function Documentation

## ◆ is_subset_of()

bool libdar::catalogue::is_subset_of | ( | const catalogue & | ref | ) | const

check whether all inode existing in the "this" and ref have the same attributes

Note
  stops at the first inode found in both catalogue that do not match for at least one attribute including CRC for DATA, EA or FSA if present, then return false.

## ◆ swap_stuff()

void libdar::catalogue::swap_stuff | ( | catalogue & | ref | ) |
| protected

invert the data tree memory management responsibility pointed to by "contenu" pointers between the current catalogue and the catalogue given in argument.

## ◆ transfer_delta_signatures()

void libdar::catalogue::transfer_delta_signatures | ( | const pile_descriptor & | destination,
|  | bool | sequential_read,
|  | bool | build,
|  | const mask & | delta_mask,
|  | const infinint & | delta_sig_min_size,
|  | const delta_sig_block_size & | signature_block_size
| ) |  |

copy delta signatures to the given stack and update the cat_file objects accordingly

Parameters

  [in] | destination | where to drop delta signatures
  [in] | sequential_read | whether we read the archive in sequential mode
  [in] | build | if set and delta signature is not present but data is available for a file, calculate the delta sig
  [in] | delta_mask | defines what files to calculate delta signature for when build is set to true
  [in] | delta_sig_min_size | minimum size below which to never calculate delta signatures
  [in] | signature_block_size | block size to use for computing delta signatures

Note
  this method relies on reset_read() and read()

## ◆ update_absent_with()

void libdar::catalogue::update_absent_with | ( | const catalogue & | ref,
|  | infinint | aborting_next_etoile
| ) |  |

copy from ref missing files in "this" and mark then as "not_saved" (no change since reference)

in case of abortion, completes missing files as if what could not be inspected had not changed since the reference was done aborting_last_etoile is the highest etoile reference withing "this" current object.

## ◆ update_destroyed_with()

infinint libdar::catalogue::update_destroyed_with | ( | const catalogue & | ref | ) |

add into "this" detruit object corresponding to object of ref absent in "this"

Note
  ref must have the same directory tree "this", else the operation generates an exception

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

- catalogue.hpp