| Disk ARchive 2.7.18 Full featured and portable backup and archiving tool

Loading...
Searching...
No Matches
filtre.hpp
Go to the documentation of this file.
1/*********************************************************************/
2// dar - disk archive - a backup/restoration program
3// Copyright (C) 2002-2025 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, see the AUTHOR file
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#include "filesystem_ids.hpp"
38
39 namespace libdar
40{
41
44
45 extern void filtre_restore(const std::shared_ptr<user_interaction> & dialog,
46 const mask &filtre,
47 const mask & subtree,
48 const catalogue & cat,
49 const path & fs_racine,
50 bool fs_warn_overwrite,
51 bool info_details,
52 bool display_treated,
53 bool display_treated_only_dir,
54 bool display_skipped,
55 statistics & st,
56 const mask & ea_mask,
57 bool flat,
58 comparison_fields what_to_check,
59 bool warn_remove_no_match,
60 bool empty,
61 bool empty_dir,
62 const crit_action & x_overwrite,
63 archive_options_extract::t_dirty dirty,
64 bool only_deleted,
65 bool not_deleted,
66 const fsa_scope & scope,
67 bool ignore_unix_sockets
68 );
69
70 extern void filtre_sauvegarde(const std::shared_ptr<user_interaction> & dialog,
71 const mask &filtre,
72 const mask &subtree,
73 const pile_descriptor & pdesc,
74 catalogue & cat,
75 const catalogue & ref,
76 const path & fs_racine,
77 bool info_details,
78 bool display_treated,
79 bool display_treated_only_dir,
80 bool display_skipped,
81 bool display_finished,
82 statistics & st,
83 bool make_empty_dir,
84 const mask & ea_mask,
85 const mask &compr_mask,
86 const infinint & min_compr_size,
87 bool nodump,
88 const infinint & hourshift,
89 bool alter_time,
90 bool furtive_read_mode,
91 const filesystem_ids & same_fs,
92 comparison_fields what_to_check,
93 bool snapshot,
94 bool cache_directory_tagging,
95 bool security_check,
96 const infinint & repeat_count,
97 const infinint & repeat_byte,
98 const infinint & fixed_date,
99 const infinint & sparse_file_min_size,
100 const std::string & backup_hook_file_execute,
101 const mask & backup_hook_file_mask,
102 bool ignore_unknown,
103 const fsa_scope & scope,
104 const std::string & exclude_by_ea,
105 bool delta_signature, // whether to compute delta sig file on the saved file
106 const infinint & delta_sig_min_size, // size below which to never calculate delta sig
107 const mask & delta_mask, // mask defining for which file to calculate delta sig
108 bool delta_diff, // whether to perform delta diff backup when delta sig is present
109 bool auto_zeroing_neg_dates,
110 const std::set<std::string> & ignored_symlinks,
111 modified_data_detection mod_data_detect,
112 const delta_sig_block_size & delta_sig_block_len);
113
114 extern void filtre_difference(const std::shared_ptr<user_interaction> & dialog,
115 const mask &filtre,
116 const mask &subtree,
117 const catalogue & cat,
118 const path & fs_racine,
119 bool info_details,
120 bool display_treated,
121 bool display_treated_only_dir,
122 bool display_skipped,
123 statistics & st,
124 const mask & ea_mask,
125 bool alter_time,
126 bool furtive_read_mode,
127 comparison_fields what_to_check,
128 const infinint & hourshift,
129 bool compare_symlink_date,
130 const fsa_scope & scope,
131 bool isolated_mode);
132
133 extern void filtre_test(const std::shared_ptr<user_interaction> & dialog,
134 const mask &filtre,
135 const mask &subtree,
136 const catalogue & cat,
137 bool info_details,
138 bool display_treated,
139 bool display_treated_only_dir,
140 bool display_skipped,
141 bool empty,
142 statistics & st);
143
144 extern void filtre_merge(const std::shared_ptr<user_interaction> & dialog,
145 const mask & filtre,
146 const mask & subtree,
147 const pile_descriptor & pdesc,
148 catalogue & cat,
149 const catalogue * ref1,
150 const catalogue * ref2,
151 bool info_details,
152 bool display_treated,
153 bool display_treated_only_dir,
154 bool display_skipped,
155 statistics & st,
156 bool make_empty_dir,
157 const mask & ea_mask,
158 const mask & compr_mask,
159 const infinint & min_compr_size,
160 bool keep_compressed,
161 const crit_action & overwrite,
162 bool warn_overwrite,
163 bool decremental_mode,
164 const infinint & sparse_file_min_size,
165 const fsa_scope & scope,
166 bool delta_signature,
167 bool build_delta_sig,
168 const infinint & delta_sig_min_size,
169 const mask & delta_mask,
170 const delta_sig_block_size & signature_block_size);
171
172
174
176 extern void filtre_merge_step0(const std::shared_ptr<user_interaction> & dialog,
177 const catalogue * ref1,
178 const catalogue * ref2,
179 statistics & st,
180 bool decremental_mode,
181 crit_action* & decr,
182 const crit_action* & overwrite,
183 bool & abort,
184 thread_cancellation & thr_cancel);
185
187
188 extern void filtre_merge_step1(const std::shared_ptr<user_interaction> & dialog,
189 const mask & filtre,
190 const mask & subtree,
191 catalogue & cat,
192 const catalogue * ref1,
193 const catalogue * ref2,
194 bool info_details,
195 bool display_treated,
196 bool display_skipped,
197 statistics & st,
198 bool make_empty_dir,
199 bool warn_overwrite,
200 bool decremental_mode,
201 crit_action* & decr,
202 const crit_action* & overwrite,
203 bool & abort,
204 thread_cancellation & thr_cancel);
205
206
208
210 extern void filtre_merge_step2(const std::shared_ptr<user_interaction> & dialog,
211 const pile_descriptor & pdesc,
212 catalogue & cat,
213 bool info_details,
214 bool display_treated,
215 bool display_treated_only_dir,
216 const mask & compr_mask,
217 const infinint & min_compr_size,
218 bool keep_compressed,
219 const infinint & sparse_file_min_size,
220 bool delta_signature,
221 bool build_delta_sig,
222 const infinint & delta_sig_min_size,
223 const mask & delta_mask,
224 bool & abort,
225 thread_cancellation & thr_cancel,
226 bool repair_mode,
227 const delta_sig_block_size & signature_block_size);
228
229
230 void filtre_sequentially_read_all_catalogue(catalogue & cat,
231 const std::shared_ptr<user_interaction> & dialog,
232 bool lax_read_mode);
233
234
235
237
238} // end of namespace
239
240#endif
archive_options.hpp
this file contains a set of classes used to transmit options to archive operation
catalogue.hpp
here is defined the classe used to manage catalogue of archives
libdar::catalogue
the catalogue class which gather all objects contained in a give archive
Definition catalogue.hpp:60
libdar::crit_action
the global action for overwriting
Definition crit_action.hpp:81
libdar::infinint
the arbitrary large positive integer class
Definition real_infinint.hpp:62
libdar::mask
the generic class, parent of all masks
Definition mask.hpp:62
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
libdar::thread_cancellation
class to be used as parent to provide checkpoints to inherited classes
Definition thread_cancellation.hpp:69
filesystem_ids.hpp
gather the ids of different filesystem to provide a filter based on filesystem
libdar::modified_data_detection
modified_data_detection
how to detect data has changed when some fields
Definition archive_aux.hpp:44
libdar::comparison_fields
comparison_fields
how to consider file change during comparison and incremental backup
Definition archive_aux.hpp:53
libdar::fsa_scope
std::set< fsa_family > fsa_scope
set of fsa families
Definition fsa_family.hpp:70
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_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::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::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, bool ignore_unix_sockets)
mask.hpp
here lies a collection of mask classes
my_config.h
include macro defined by the configure script and some specific additional ones
libdar
libdar namespace encapsulate all libdar symbols
Definition archive.hpp:47
path.hpp
here is the definition of the path class
pile.hpp
class pile definition. Used to manage a stack of generic_file objects
statistics.hpp
class handling access to the data summary of treated files after and during each operation
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
thread_cancellation.hpp
to be able to cancel libdar operation while running in a given thread.