33 #include "../my_config.h"
53 #define ARCHIVE_NUM_MAX 65534
63 enum lookup { found_present, found_removed, not_found, not_restorable };
76 std::string get_name()
const {
return filename; };
77 void set_name(
const std::string & name) { filename = name; };
91 void set_data(
const archive_num & archive,
const infinint & date, etat present) { status sta = { date, present }; last_mod[archive] = sta; };
92 void set_EA(
const archive_num & archive,
const infinint & date, etat present) { status sta = { date, present }; last_change[archive] = sta; };
95 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); };
109 virtual void compute_most_recent_stats(std::vector<infinint> & data,
110 std::vector<infinint> &
ea,
111 std::vector<infinint> & total_data,
112 std::vector<infinint> & total_ea)
const;
114 virtual char obj_signature()
const {
return signature(); };
115 static char signature() {
return 't'; };
117 #ifdef LIBDAR_SPECIAL_ALLOC
118 void *
operator new(
size_t taille) {
return special_alloc_new(taille); };
119 void operator delete(
void *ptr) { special_alloc_delete(ptr); };
126 void dump(generic_file & f)
const;
127 void read(generic_file &f);
131 std::string filename;
132 std::map<archive_num, status> last_mod;
133 std::map<archive_num, status> last_change;
139 bool check_map_order(user_interaction & dialog,
140 const std::map<archive_num, status> the_map,
141 const path & current_path,
142 const std::string & field_nature,
143 bool & initial_warn)
const;
162 const data_tree *read_child(
const std::string & name)
const;
163 void read_all_children(std::vector<std::string> & fils)
const;
164 virtual void finalize_except_self(
const archive_num & archive,
const infinint & deleted_date);
175 void compute_most_recent_stats(std::vector<infinint> & data, std::vector<infinint> &
ea,
176 std::vector<infinint> & total_data, std::vector<infinint> & total_ea)
const;
178 char obj_signature()
const {
return signature(); };
179 static char signature() {
return 'd'; };
181 #ifdef LIBDAR_SPECIAL_ALLOC
182 void *
operator new(
size_t taille) {
return special_alloc_new(taille); };
183 void operator delete(
void *ptr) { special_alloc_delete(ptr); };
187 std::list<data_tree *> rejetons;
190 void remove_child(
const std::string & name);
191 data_tree *find_or_addition(
const std::string & name,
bool is_dir,
const archive_num & archive);