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; };
95 virtual void set_in_place(
const path & arg)
override;
96 virtual void clear_in_place()
override;
109 smart_pointer<pile_descriptor> pdesc;
110 header_version x_ver;
111 std::list<signator> known_sig;
113 std::map <infinint, cat_etoile *> corres;
116 infinint min_read_offset;
118 infinint wait_parent_depth;
120 void set_esc_and_stack(
const pile_descriptor & x_pdesc);
121 void copy_from(
const escape_catalogue & ref);
123 void merge_cat_det();
124 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