34 #ifndef ESCAPE_CATALOGUE_HPP
35 #define ESCAPE_CATALOGUE_HPP
37 #include "../my_config.h"
51 class escape_catalogue :
public catalogue
56 escape_catalogue(
const std::shared_ptr<user_interaction> & dialog,
57 const pile_descriptor & x_pdesc,
58 const datetime & root_last_modif,
59 const label & data_name);
62 escape_catalogue(
const std::shared_ptr<user_interaction> & dialog,
63 const pile_descriptor & x_pdesc,
64 const header_version & ver,
65 const std::list<signator> & known_signatories,
68 escape_catalogue(
const escape_catalogue & ref) : catalogue(ref) { copy_from(ref); };
69 escape_catalogue(escape_catalogue && ref) =
delete;
70 escape_catalogue & operator = (
const escape_catalogue &ref);
71 escape_catalogue & operator = (escape_catalogue && ref) =
delete;
72 ~escape_catalogue() { destroy(); };
75 virtual void pre_add(
const cat_entree *ref,
const pile_descriptor* dest)
const override;
76 virtual void pre_add_ea(
const cat_entree *ref,
const pile_descriptor* dest)
const override;
77 virtual void pre_add_crc(
const cat_entree *ref,
const pile_descriptor* dest)
const override;
78 virtual void pre_add_dirty(
const pile_descriptor* dest)
const override;
79 virtual void pre_add_ea_crc(
const cat_entree *ref,
const pile_descriptor* dest)
const override;
80 virtual void pre_add_waste_mark(
const pile_descriptor* dest)
const override;
81 virtual void pre_add_failed_mark(
const pile_descriptor* dest)
const override;
82 virtual void pre_add_fsa(
const cat_entree *ref,
const pile_descriptor* dest)
const override;
83 virtual void pre_add_fsa_crc(
const cat_entree *ref,
const pile_descriptor* dest)
const override;
84 virtual void pre_add_delta_sig(
const pile_descriptor* dest)
const override;
85 virtual escape *get_escape_layer()
const override {
return pdesc.is_null() ? nullptr : pdesc->esc; };
86 virtual void drop_escape_layer()
override { pdesc.assign(
nullptr); };
88 virtual void reset_read()
const override;
89 virtual void end_read()
const override;
90 virtual void skip_read_to_parent_dir()
const override;
91 virtual bool read(
const cat_entree * & ref)
const override;
92 virtual bool read_if_present(std::string *name,
const cat_nomme * & ref)
const override;
93 virtual void tail_catalogue_to_current_read()
override;
94 virtual bool read_second_time_dir()
const override {
return status == ec_detruits; };
107 smart_pointer<pile_descriptor> pdesc;
108 header_version x_ver;
109 std::list<signator> known_sig;
111 std::map <infinint, cat_etoile *> corres;
114 infinint min_read_offset;
116 infinint wait_parent_depth;
118 void set_esc_and_stack(
const pile_descriptor & x_pdesc);
119 void copy_from(
const escape_catalogue & ref);
121 void merge_cat_det();
122 void reset_reading_process();
here is defined the classe used to manage catalogue of archives
class escape definition, used for sequential reading of archives
libdar namespace encapsulate all libdar symbols
optimization structure to quickly access some commonly used layers of a stack of generic_file
template class implementing memory efficient smart pointer