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);
133 void dump(generic_file & f)
const;
134 void read(generic_file &f);
138 std::string filename;
139 std::map<archive_num, status> last_mod;
140 std::map<archive_num, status> last_change;
146 bool check_map_order(user_interaction & dialog,
147 const std::map<archive_num, status> the_map,
148 const path & current_path,
149 const std::string & field_nature,
150 bool & initial_warn)
const;
169 const data_tree *read_child(
const std::string & name)
const;
170 void read_all_children(std::vector<std::string> & fils)
const;
171 virtual void finalize_except_self(
const archive_num & archive,
173 const archive_num & ignore_archives_greater_or_equal);
184 void compute_most_recent_stats(std::vector<infinint> & data, std::vector<infinint> &
ea,
185 std::vector<infinint> & total_data, std::vector<infinint> & total_ea)
const;
187 char obj_signature()
const {
return signature(); };
188 static char signature() {
return 'd'; };
190 #ifdef LIBDAR_SPECIAL_ALLOC
194 std::list<data_tree *> rejetons;
197 void remove_child(
const std::string & name);
198 data_tree *find_or_addition(
const std::string & name,
bool is_dir,
const archive_num & archive);