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,
67 escape_catalogue(
const escape_catalogue & ref) : catalogue(ref) { copy_from(ref); };
68 escape_catalogue(escape_catalogue && ref) =
delete;
69 escape_catalogue & operator = (
const escape_catalogue &ref);
70 escape_catalogue & operator = (escape_catalogue && ref) =
delete;
71 ~escape_catalogue() { destroy(); };
74 virtual void pre_add(
const cat_entree *ref,
const pile_descriptor* dest)
const override;
75 virtual void pre_add_ea(
const cat_entree *ref,
const pile_descriptor* dest)
const override;
76 virtual void pre_add_crc(
const cat_entree *ref,
const pile_descriptor* dest)
const override;
77 virtual void pre_add_dirty(
const pile_descriptor* dest)
const override;
78 virtual void pre_add_ea_crc(
const cat_entree *ref,
const pile_descriptor* dest)
const override;
79 virtual void pre_add_waste_mark(
const pile_descriptor* dest)
const override;
80 virtual void pre_add_failed_mark(
const pile_descriptor* dest)
const override;
81 virtual void pre_add_fsa(
const cat_entree *ref,
const pile_descriptor* dest)
const override;
82 virtual void pre_add_fsa_crc(
const cat_entree *ref,
const pile_descriptor* dest)
const override;
83 virtual void pre_add_delta_sig(
const pile_descriptor* dest)
const override;
84 virtual escape *get_escape_layer()
const override {
return pdesc.is_null() ? nullptr : pdesc->esc; };
85 virtual void drop_escape_layer()
override { pdesc.assign(
nullptr); };
87 virtual void reset_read()
const override;
88 virtual void end_read()
const override;
89 virtual void skip_read_to_parent_dir()
const override;
90 virtual bool read(
const cat_entree * & ref)
const override;
91 virtual bool read_if_present(std::string *name,
const cat_nomme * & ref)
const override;
92 virtual void tail_catalogue_to_current_read()
override;
93 virtual bool read_second_time_dir()
const override {
return status == ec_detruits; };
106 smart_pointer<pile_descriptor> pdesc;
107 header_version x_ver;
108 std::list<signator> known_sig;
110 std::map <infinint, cat_etoile *> corres;
113 infinint min_read_offset;
115 infinint wait_parent_depth;
117 void set_esc_and_stack(
const pile_descriptor & x_pdesc);
118 void copy_from(
const escape_catalogue & ref);
120 void merge_cat_det();
121 void reset_reading_process();