26 #ifndef FILESYSTEM_RESTORE_HPP
27 #define FILESYSTEM_RESTORE_HPP
29 #include "../my_config.h"
64 bool x_warn_overwrite,
66 const mask & x_ea_mask,
68 bool x_warn_remove_no_match,
71 bool x_only_overwrite,
92 using action_done_for_data =
enum
95 done_no_change_no_data,
96 done_no_change_policy,
111 action_done_for_data & data_restored,
115 bool & fsa_restored);
132 bool get_restore_date()
const {
return restore_date; };
133 void set_restore_date(
bool val) { restore_date = val; };
144 bool warn_remove_no_match;
145 std::deque<stack_dir_t> stack_dir;
148 bool ignore_over_restricts;
149 const crit_action *overwrite;
153 void restore_stack_dir_ownership();
162 const std::string & spot,
167 const std::string & spot,
169 action_done_for_data & data_done);
173 const std::string & spot,
178 const std::string & spot,
include file gathering all entree found in a catalogue
the cat_directory inode class
the root class from all other inherite for any entry in the catalogue
the root class for all cat_inode
the base class for all entry that have a name
the global action for overwriting
keep trace of hard links when reading the filesystem
keep trace of already written inodes to restore hard links
receive the flow of inode from the restoration filtering routing and promotes these to real filesyste...
void ignore_overwrite_restrictions_for_next_write()
ask for no warning or user interaction for the next write operation
void reset_write()
reset the writing process for the current object
void action_over_data(const cat_inode *in_place, const cat_nomme *to_be_added, const std::string &spot, over_action_data action, action_done_for_data &data_done)
perform action for data due to the overwriting policy when the "to be added" entry is not a cat_detru...
bool action_over_ea(const cat_inode *in_place, const cat_nomme *to_be_added, const std::string &spot, over_action_ea action)
perform action for EA due to overwriting policy
filesystem_restore(const std::shared_ptr< user_interaction > &dialog, const path &root, bool x_warn_overwrite, bool x_info_details, const mask &x_ea_mask, comparison_fields what_to_check, bool x_warn_remove_no_match, bool empty, const crit_action *x_overwrite, bool x_only_overwrite, const fsa_scope &scope)
constructor
void action_over_remove(const cat_inode *in_place, const cat_detruit *to_be_added, const std::string &spot, over_action_data action)
perform action due to the overwriting policy when the "to be added" entry is a detruit object
filesystem_restore & operator=(const filesystem_restore &ref)=delete
assignment operator is forbidden
filesystem_restore(filesystem_restore &&ref)=delete
move constructor is forbidden
~filesystem_restore()
destructor
void write(const cat_entree *x, action_done_for_data &data_restored, bool &ea_restored, bool &data_created, bool &hard_link, bool &fsa_restored)
restore a libdar object to a filesystem entry both data and EA
bool action_over_fsa(const cat_inode *in_place, const cat_nomme *to_be_added, const std::string &spot, over_action_ea action)
perform action for FSA due to overwriting policy
filesystem_restore(const filesystem_restore &ref)=delete
copy constructor is forbidden
the generic class, parent of all masks
user_interaction & get_ui() const
get access to the user_interaction object
std::shared_ptr< user_interaction > get_pointer() const
get access to the shared_ptr pointing to the user_interaction
the class path is here to manipulate paths in the Unix notation: using'/'
contains classes that let the user define the policy for overwriting files
filesystem_hard_link_read classes manages hardlinked inode read from filesystem
class filesystem_hard_link_write keeps trace of already written inode to restore hard links
filesystem specific attributes available families and fsa_scope definition
comparison_fields
how to consider file change during comparison and incremental backup
over_action_ea
the possible action for overwriting EA
std::set< fsa_family > fsa_scope
set of fsa families
over_action_data
the possible actions for overwriting data
libdar namespace encapsulate all libdar symbols