|
Disk ARchive
2.4.12
|
00001 /*********************************************************************/ 00002 // dar - disk archive - a backup/restoration program 00003 // Copyright (C) 2002-2052 Denis Corbin 00004 // 00005 // This program is free software; you can redistribute it and/or 00006 // modify it under the terms of the GNU General Public License 00007 // as published by the Free Software Foundation; either version 2 00008 // of the License, or (at your option) any later version. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with this program; if not, write to the Free Software 00017 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00018 // 00019 // to contact the author : http://dar.linux.free.fr/email.html 00020 /*********************************************************************/ 00021 00025 00026 #ifndef FILTRE_HPP 00027 #define FILTRE_HPP 00028 00029 #include "../my_config.h" 00030 #include <vector> 00031 #include "mask.hpp" 00032 #include "pile.hpp" 00033 #include "catalogue.hpp" 00034 #include "path.hpp" 00035 #include "statistics.hpp" 00036 #include "criterium.hpp" 00037 #include "archive_options.hpp" 00038 00039 namespace libdar 00040 { 00041 00044 00045 extern void filtre_restore(user_interaction & dialog, //< for user interaction 00046 const mask &filtre, //< which filename to restore 00047 const mask & subtree, //< which directory and paths to restore 00048 catalogue & cat, //< table of content to extract information from 00049 const path & fs_racine, //< root path under which to restore directiry tree and files 00050 bool fs_warn_overwrite, //< whether to warn before overwriting (to be replaced by overwriting policy) 00051 bool info_details, //< whether to be verbose 00052 statistics & st, //< statistics result about the operation 00053 const mask & ea_mask, //< defines EA to restore/not restore 00054 bool flat, //< if true, directories are not restores, all files are placed directly at in fs_racine directory 00055 inode::comparison_fields what_to_check, //< which file properties to restore 00056 bool warn_remove_no_match, //< wether to warn for file to remove not matching the expected type 00057 bool empty, //< dry-run execution 00058 bool display_skipped, //< whether to display skipped files 00059 bool empty_dir, //< whether to restore directories that do contain any file to restore 00060 const crit_action & x_overwrite, //< how and whether to overwrite files 00061 archive_options_extract::t_dirty dirty, //< whether to restore dirty files 00062 bool only_deleted, //< whether to only consider deleted files 00063 bool not_deleted); //< <wether to consider deleted files 00064 00065 extern void filtre_sauvegarde(user_interaction & dialog, 00066 const mask &filtre, 00067 const mask &subtree, 00068 pile & stack, 00069 catalogue & cat, 00070 catalogue &ref, 00071 const path & fs_racine, 00072 bool info_details, 00073 statistics & st, 00074 bool make_empty_dir, 00075 const mask & ea_mask, 00076 const mask &compr_mask, 00077 const infinint & min_compr_size, 00078 bool nodump, 00079 const infinint & hourshift, 00080 bool alter_time, 00081 bool furtive_read_mode, 00082 bool same_fs, 00083 inode::comparison_fields what_to_check, 00084 bool snapshot, 00085 bool cache_directory_tagging, 00086 bool display_skipped, 00087 bool security_check, 00088 const infinint & repeat_count, 00089 const infinint & repeat_byte, 00090 const infinint & fixed_date, 00091 const infinint & sparse_file_min_size, 00092 const std::string & backup_hook_file_execute, 00093 const mask & backup_hook_file_mask, 00094 bool ignore_unknown); 00095 00096 extern void filtre_difference(user_interaction & dialog, 00097 const mask &filtre, 00098 const mask &subtree, 00099 catalogue & cat, 00100 const path & fs_racine, 00101 bool info_details, 00102 statistics & st, 00103 const mask & ea_mask, 00104 bool alter_time, 00105 bool furtive_read_mode, 00106 inode::comparison_fields what_to_check, 00107 bool display_skipped, 00108 const infinint & hourshift, 00109 bool compare_symlink_date); 00110 00111 extern void filtre_test(user_interaction & dialog, 00112 const mask &filtre, 00113 const mask &subtree, 00114 catalogue & cat, 00115 bool info_details, 00116 bool empty, 00117 statistics & st, 00118 bool display_skipped); 00119 00120 extern void filtre_isolate(user_interaction & dialog, 00121 catalogue & cat, 00122 catalogue & ref, 00123 bool info_details); 00124 00125 extern void filtre_merge(user_interaction & dialog, 00126 const mask & filtre, 00127 const mask & subtree, 00128 pile & stack, 00129 catalogue & cat, 00130 catalogue * ref1, 00131 catalogue * ref2, 00132 bool info_details, 00133 statistics & st, 00134 bool make_empty_dir, 00135 const mask & ea_mask, 00136 const mask & compr_mask, 00137 const infinint & min_compr_size, 00138 bool display_skipped, 00139 bool keep_compressed, 00140 const crit_action & overwrite, 00141 bool warn_overwrite, 00142 bool decremental_mode, 00143 const infinint & sparse_file_min_size); 00144 00145 void filtre_sequentially_read_all_catalogue(catalogue & cat, 00146 user_interaction & dialog); 00147 00149 00150 } // end of namespace 00151 00152 #endif
1.7.6.1