35 #ifndef FILESYSTEM_HPP
36 #define FILESYSTEM_HPP
38 #include "../my_config.h"
72 bool x_furtive_read_mode) :
mem_ui(dialog) { furtive_read_mode = x_furtive_read_mode; };
82 const infinint & get_last_etoile_ref()
const {
return etiquette_counter; };
88 void corres_reset() { corres_read.clear(); etiquette_counter = 0; };
94 const std::string & name,
96 const mask & ea_mask);
108 couple(
etoile *ptr, nlink_t ino_count) : holder(
"FAKE", ptr) { count = ino_count; obj = ptr; };
113 node(ino_t num, dev_t dev) { numnode = num;
device = dev; };
116 bool operator < (
const node & ref)
const {
return numnode < ref.numnode || (numnode == ref.numnode &&
device < ref.device); };
123 std::map <node, couple> corres_read;
125 bool furtive_read_mode;
139 const mask & x_ea_mask,
140 bool check_no_dump_flag,
142 bool furtive_read_mode,
143 bool x_cache_directory_tagging,
145 bool x_ignore_unknown);
150 void reset_read(
infinint & root_fs_device);
152 void skip_read_to_parent_dir();
162 bool furtive_read_mode;
163 bool cache_directory_tagging;
165 std::vector<etage> pile;
181 const mask & x_ea_mask,
183 bool furtive_read_mode);
189 bool read_filename(
const std::string & name,
nomme * &ref);
193 void skip_read_filename_in_parent_dir();
197 struct filename_struct
207 bool furtive_read_mode;
209 std::vector<filename_struct> filename_pile;
227 void write_hard_linked_target_if_not_set(
const mirage *ref,
const std::string & chemin);
232 bool known_etiquette(
const infinint & eti);
241 void corres_reset() { corres_write.clear(); };
242 void make_file(
const nomme * ref,
258 const std::string & spot,
259 const mask & ea_mask);
278 std::map <infinint, corres_ino_ea> corres_write;
290 bool x_warn_overwrite,
292 const mask & x_ea_mask,
294 bool x_warn_remove_no_match,
297 bool x_only_overwrite);
311 done_no_change_no_data,
312 done_no_change_policy,
314 } action_done_for_data;
325 void write(
const entree *x, action_done_for_data & data_restored,
bool & ea_restored,
bool & data_created,
bool & hard_link);
339 stack_dir_t(
const directory & ref,
bool restore) :
directory(ref) { restore_date = restore; };
341 bool get_restore_date()
const {
return restore_date; };
342 void set_restore_date(
bool val) { restore_date = val; };
353 bool warn_remove_no_match;
354 std::vector<stack_dir_t> stack_dir;
357 bool ignore_over_restricts;
358 const crit_action *overwrite;
362 void restore_stack_dir_ownership();
365 void action_over_remove(
const inode *in_place,
const detruit *to_be_added,
const std::string & spot,
over_action_data action);
366 void action_over_data(
const inode *in_place,
367 const nomme *to_be_added,
368 const std::string & spot,
370 action_done_for_data & data_done);
371 bool action_over_ea(
const inode *in_place,
const nomme *to_be_added,
const std::string & spot,
over_action_ea action);