30 #include "../my_config.h"
50 #define ARCHIVE_NUM_MAX 65534
60 enum lookup { found_present, found_removed, not_found, not_restorable };
74 std::string get_name()
const {
return filename; };
75 void set_name(
const std::string & name) { filename = name; };
89 void set_data(
const archive_num & archive,
const infinint & date, etat present) { status sta = { date, present }; last_mod[archive] = sta; };
90 void set_EA(
const archive_num & archive,
const infinint & date, etat present) { status sta = { date, present }; last_change[archive] = sta; };
93 virtual bool check_order(
user_interaction & dialog,
const path & current_path,
bool & initial_warn)
const {
return check_map_order(dialog, last_mod, current_path,
"data", initial_warn) && check_map_order(dialog, last_change, current_path,
"EA", initial_warn); };
106 const archive_num & ignore_archive_greater_or_equal);
117 virtual void compute_most_recent_stats(std::vector<infinint> & data,
118 std::vector<infinint> &
ea,
119 std::vector<infinint> & total_data,
120 std::vector<infinint> & total_ea)
const;
122 virtual char obj_signature()
const {
return signature(); };
123 static char signature() {
return 't'; };
125 #ifdef LIBDAR_SPECIAL_ALLOC
126 USE_SPECIAL_ALLOC(data_tree);
129 virtual bool fix_corruption();
136 void dump(generic_file & f)
const;
137 void read(generic_file &f);
141 std::string filename;
142 std::map<archive_num, status> last_mod;
143 std::map<archive_num, status> last_change;
149 bool check_map_order(user_interaction & dialog,
150 const std::map<archive_num, status> the_map,
151 const path & current_path,
152 const std::string & field_nature,
153 bool & initial_warn)
const;
172 const data_tree *read_child(
const std::string & name)
const;
173 void read_all_children(std::vector<std::string> & fils)
const;
174 virtual void finalize_except_self(
const archive_num & archive,
176 const archive_num & ignore_archives_greater_or_equal);
187 void compute_most_recent_stats(std::vector<infinint> & data, std::vector<infinint> &
ea,
188 std::vector<infinint> & total_data, std::vector<infinint> & total_ea)
const;
190 char obj_signature()
const {
return signature(); };
191 static char signature() {
return 'd'; };
193 #ifdef LIBDAR_SPECIAL_ALLOC
197 virtual bool fix_corruption();
201 std::list<data_tree *> rejetons;
204 void remove_child(
const std::string & name);
205 data_tree *find_or_addition(
const std::string & name,
bool is_dir,
const archive_num & archive);