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); };
87 virtual void set_escape_layer(escape* ptr)
override {
throw SRC_BUG; };
89 virtual void reset_read()
const override;
90 virtual void end_read()
const override;
91 virtual void skip_read_to_parent_dir()
const override;
92 virtual bool read(
const cat_entree * & ref)
const override;
93 virtual bool read_if_present(std::string *name,
const cat_nomme * & ref)
const override;
94 virtual void tail_catalogue_to_current_read(
bool including_last_read)
override;
95 virtual bool read_second_time_dir()
const override {
return status == ec_detruits; };
96 virtual void set_in_place(
const path & arg)
override;
97 virtual void clear_in_place()
override;
110 smart_pointer<pile_descriptor> pdesc;
111 header_version x_ver;
112 std::list<signator> known_sig;
114 std::map <infinint, cat_etoile *> corres;
117 infinint min_read_offset;
119 infinint wait_parent_depth;
121 void set_esc_and_stack(
const pile_descriptor & x_pdesc);
122 void copy_from(
const escape_catalogue & ref);
124 void merge_cat_det();
125 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