Disk ARchive  2.6.10
Full featured and portable backup and archiving tool
filtre.hpp
Go to the documentation of this file.
1 /*********************************************************************/
2 // dar - disk archive - a backup/restoration program
3 // Copyright (C) 2002-2020 Denis Corbin
4 //
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 //
19 // to contact the author : http://dar.linux.free.fr/email.html
20 /*********************************************************************/
21 
25 
26 #ifndef FILTRE_HPP
27 #define FILTRE_HPP
28 
29 #include "../my_config.h"
30 #include "mask.hpp"
31 #include "pile.hpp"
32 #include "catalogue.hpp"
33 #include "path.hpp"
34 #include "statistics.hpp"
35 #include "archive_options.hpp"
36 #include "thread_cancellation.hpp"
37 
38 namespace libdar
39 {
40 
43 
44  extern void filtre_restore(const std::shared_ptr<user_interaction> & dialog,
45  const mask &filtre,
46  const mask & subtree,
47  const catalogue & cat,
48  const path & fs_racine,
49  bool fs_warn_overwrite,
50  bool info_details,
51  bool display_treated,
52  bool display_treated_only_dir,
53  bool display_skipped,
54  statistics & st,
55  const mask & ea_mask,
56  bool flat,
57  comparison_fields what_to_check,
58  bool warn_remove_no_match,
59  bool empty,
60  bool empty_dir,
61  const crit_action & x_overwrite,
62  archive_options_extract::t_dirty dirty,
63  bool only_deleted,
64  bool not_deleted,
65  const fsa_scope & scope
66  );
67 
68  extern void filtre_sauvegarde(const std::shared_ptr<user_interaction> & dialog,
69  const mask &filtre,
70  const mask &subtree,
71  const pile_descriptor & pdesc,
72  catalogue & cat,
73  const catalogue & ref,
74  const path & fs_racine,
75  bool info_details,
76  bool display_treated,
77  bool display_treated_only_dir,
78  bool display_skipped,
79  bool display_finished,
80  statistics & st,
81  bool make_empty_dir,
82  const mask & ea_mask,
83  const mask &compr_mask,
84  const infinint & min_compr_size,
85  bool nodump,
86  const infinint & hourshift,
87  bool alter_time,
88  bool furtive_read_mode,
89  bool same_fs,
90  comparison_fields what_to_check,
91  bool snapshot,
92  bool cache_directory_tagging,
93  bool security_check,
94  const infinint & repeat_count,
95  const infinint & repeat_byte,
96  const infinint & fixed_date,
97  const infinint & sparse_file_min_size,
98  const std::string & backup_hook_file_execute,
99  const mask & backup_hook_file_mask,
100  bool ignore_unknown,
101  const fsa_scope & scope,
102  const std::string & exclude_by_ea,
103  bool delta_signature, // whether to compute delta sig file on the saved file
104  const infinint & delta_sig_min_size, // size below which to never calculate delta sig
105  const mask & delta_mask, // mask defining for which file to calculate delta sig
106  bool delta_diff, // whether to perform delta diff backup when delta sig is present
107  bool auto_zeroing_neg_dates,
108  const std::set<std::string> & ignored_symlinks,
109  modified_data_detection mod_data_detect,
110  const delta_sig_block_size & delta_sig_block_len);
111 
112  extern void filtre_difference(const std::shared_ptr<user_interaction> & dialog,
113  const mask &filtre,
114  const mask &subtree,
115  const catalogue & cat,
116  const path & fs_racine,
117  bool info_details,
118  bool display_treated,
119  bool display_treated_only_dir,
120  bool display_skipped,
121  statistics & st,
122  const mask & ea_mask,
123  bool alter_time,
124  bool furtive_read_mode,
125  comparison_fields what_to_check,
126  const infinint & hourshift,
127  bool compare_symlink_date,
128  const fsa_scope & scope,
129  bool isolated_mode);
130 
131  extern void filtre_test(const std::shared_ptr<user_interaction> & dialog,
132  const mask &filtre,
133  const mask &subtree,
134  const catalogue & cat,
135  bool info_details,
136  bool display_treated,
137  bool display_treated_only_dir,
138  bool display_skipped,
139  bool empty,
140  statistics & st);
141 
142  extern void filtre_merge(const std::shared_ptr<user_interaction> & dialog,
143  const mask & filtre,
144  const mask & subtree,
145  const pile_descriptor & pdesc,
146  catalogue & cat,
147  const catalogue * ref1,
148  const catalogue * ref2,
149  bool info_details,
150  bool display_treated,
151  bool display_treated_only_dir,
152  bool display_skipped,
153  statistics & st,
154  bool make_empty_dir,
155  const mask & ea_mask,
156  const mask & compr_mask,
157  const infinint & min_compr_size,
158  bool keep_compressed,
159  const crit_action & overwrite,
160  bool warn_overwrite,
161  bool decremental_mode,
162  const infinint & sparse_file_min_size,
163  const fsa_scope & scope,
164  bool delta_signature,
165  bool build_delta_sig,
166  const infinint & delta_sig_min_size,
167  const mask & delta_mask,
168  const delta_sig_block_size & signature_block_size);
169 
170 
172 
174  extern void filtre_merge_step0(const std::shared_ptr<user_interaction> & dialog,
175  const catalogue * ref1,
176  const catalogue * ref2,
177  statistics & st,
178  bool decremental_mode,
179  crit_action* & decr,
180  const crit_action* & overwrite,
181  bool & abort,
182  thread_cancellation & thr_cancel);
183 
185 
186  extern void filtre_merge_step1(const std::shared_ptr<user_interaction> & dialog,
187  const mask & filtre,
188  const mask & subtree,
189  catalogue & cat,
190  const catalogue * ref1,
191  const catalogue * ref2,
192  bool info_details,
193  bool display_treated,
194  bool display_skipped,
195  statistics & st,
196  bool make_empty_dir,
197  bool warn_overwrite,
198  bool decremental_mode,
199  crit_action* & decr,
200  const crit_action* & overwrite,
201  bool & abort,
202  thread_cancellation & thr_cancel);
203 
204 
206 
208  extern void filtre_merge_step2(const std::shared_ptr<user_interaction> & dialog,
209  const pile_descriptor & pdesc,
210  catalogue & cat,
211  bool info_details,
212  bool display_treated,
213  bool display_treated_only_dir,
214  const mask & compr_mask,
215  const infinint & min_compr_size,
216  bool keep_compressed,
217  const infinint & sparse_file_min_size,
218  bool delta_signature,
219  bool build_delta_sig,
220  const infinint & delta_sig_min_size,
221  const mask & delta_mask,
222  bool & abort,
223  thread_cancellation & thr_cancel,
224  bool repair_mode,
225  const delta_sig_block_size & signature_block_size);
226 
227 
228  void filtre_sequentially_read_all_catalogue(catalogue & cat,
229  const std::shared_ptr<user_interaction> & dialog,
230  bool lax_read_mode);
231 
232 
233 
235 
236 } // end of namespace
237 
238 #endif
mask.hpp
here lies a collection of mask classes
libdar::thread_cancellation
class to be used as parent to provide checkpoints to inherited classes
Definition: thread_cancellation.hpp:69
libdar::infinint
the arbitrary large positive integer class
Definition: real_infinint.hpp:62
libdar::filtre_merge_step1
void filtre_merge_step1(const std::shared_ptr< user_interaction > &dialog, const mask &filtre, const mask &subtree, catalogue &cat, const catalogue *ref1, const catalogue *ref2, bool info_details, bool display_treated, bool display_skipped, statistics &st, bool make_empty_dir, bool warn_overwrite, bool decremental_mode, crit_action *&decr, const crit_action *&overwrite, bool &abort, thread_cancellation &thr_cancel)
builds a catalogue from two refs with the given policy and filters
libdar::mask
the generic class, parent of all masks
Definition: mask.hpp:62
libdar::compile_time::nodump
bool nodump() noexcept
returns whether nodump flag support has been activated at compilation time
libdar::filtre_merge_step0
void filtre_merge_step0(const std::shared_ptr< user_interaction > &dialog, const catalogue *ref1, const catalogue *ref2, statistics &st, bool decremental_mode, crit_action *&decr, const crit_action *&overwrite, bool &abort, thread_cancellation &thr_cancel)
initialize variables used for merging in step1 and step2
libdar::filtre_restore
void filtre_restore(const std::shared_ptr< user_interaction > &dialog, const mask &filtre, const mask &subtree, const catalogue &cat, const path &fs_racine, bool fs_warn_overwrite, bool info_details, bool display_treated, bool display_treated_only_dir, bool display_skipped, statistics &st, const mask &ea_mask, bool flat, comparison_fields what_to_check, bool warn_remove_no_match, bool empty, bool empty_dir, const crit_action &x_overwrite, archive_options_extract::t_dirty dirty, bool only_deleted, bool not_deleted, const fsa_scope &scope)
thread_cancellation.hpp
to be able to cancel libdar operation while running in a given thread.
libdar::delta_sig_block_size
defines how to calculate delta signature block size based of file size to delta sign
Definition: delta_sig_block_size.hpp:47
archive_options.hpp
this file contains a set of classes used to transmit options to archive operation
libdar::path
the class path is here to manipulate paths in the Unix notation: using'/'
Definition: path.hpp:51
libdar::statistics
class used by libdar::archive class to give a summary of treated file during and after an operation
Definition: statistics.hpp:70
statistics.hpp
class handling access to the data summary of treated files after and during each operation
pile.hpp
class pile definition. Used to manage a stack of generic_file objects
libdar::comparison_fields
comparison_fields
how to consider file change during comparison and incremental backup
Definition: archive_aux.hpp:53
libdar::filtre_merge_step2
void filtre_merge_step2(const std::shared_ptr< user_interaction > &dialog, const pile_descriptor &pdesc, catalogue &cat, bool info_details, bool display_treated, bool display_treated_only_dir, const mask &compr_mask, const infinint &min_compr_size, bool keep_compressed, const infinint &sparse_file_min_size, bool delta_signature, bool build_delta_sig, const infinint &delta_sig_min_size, const mask &delta_mask, bool &abort, thread_cancellation &thr_cancel, bool repair_mode, const delta_sig_block_size &signature_block_size)
copies data of "cat" catalogue to the pdesc of a brand new archive
libdar::catalogue
the catalogue class which gather all objects contained in a give archive
Definition: catalogue.hpp:61
catalogue.hpp
here is defined the classe used to manage catalogue of archives
path.hpp
here is the definition of the path class
libdar::modified_data_detection
modified_data_detection
how to detect data has changed when some fields
Definition: archive_aux.hpp:44
libdar::crit_action
the global action for overwriting
Definition: crit_action.hpp:81
libdar::fsa_scope
std::set< fsa_family > fsa_scope
set of fsa families
Definition: fsa_family.hpp:70
libdar
libdar namespace encapsulate all libdar symbols
Definition: archive.hpp:47