Disk ARchive
2.4.2
|
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 // $Id: filtre.hpp,v 1.42 2011/03/31 15:52:00 edrusb Rel $ 00022 // 00023 /*********************************************************************/ 00024 00028 00029 #ifndef FILTRE_HPP 00030 #define FILTRE_HPP 00031 00032 #include "../my_config.h" 00033 #include <vector> 00034 #include "mask.hpp" 00035 #include "pile.hpp" 00036 #include "catalogue.hpp" 00037 #include "path.hpp" 00038 #include "statistics.hpp" 00039 #include "criterium.hpp" 00040 #include "archive_options.hpp" 00041 00042 namespace libdar 00043 { 00044 00047 00048 extern void filtre_restore(user_interaction & dialog, //< for user interaction 00049 const mask &filtre, //< which filename to restore 00050 const mask & subtree, //< which directory and paths to restore 00051 catalogue & cat, //< table of content to extract information from 00052 const path & fs_racine, //< root path under which to restore directiry tree and files 00053 bool fs_warn_overwrite, //< whether to warn before overwriting (to be replaced by overwriting policy) 00054 bool info_details, //< whether to be verbose 00055 statistics & st, //< statistics result about the operation 00056 const mask & ea_mask, //< defines EA to restore/not restore 00057 bool flat, //< if true, directories are not restores, all files are placed directly at in fs_racine directory 00058 inode::comparison_fields what_to_check, //< which file properties to restore 00059 bool warn_remove_no_match, //< wether to warn for file to remove not matching the expected type 00060 bool empty, //< dry-run execution 00061 bool display_skipped, //< whether to display skipped files 00062 bool empty_dir, //< whether to restore directories that do contain any file to restore 00063 const crit_action & x_overwrite, //< how and whether to overwrite files 00064 archive_options_extract::t_dirty dirty, //< whether to restore dirty files 00065 bool only_deleted, //< whether to only consider deleted files 00066 bool not_deleted); //< <wether to consider deleted files 00067 00068 extern void filtre_sauvegarde(user_interaction & dialog, 00069 const mask &filtre, 00070 const mask &subtree, 00071 pile & stack, 00072 catalogue & cat, 00073 catalogue &ref, 00074 const path & fs_racine, 00075 bool info_details, 00076 statistics & st, 00077 bool make_empty_dir, 00078 const mask & ea_mask, 00079 const mask &compr_mask, 00080 const infinint & min_compr_size, 00081 bool nodump, 00082 const infinint & hourshift, 00083 bool alter_time, 00084 bool furtive_read_mode, 00085 bool same_fs, 00086 inode::comparison_fields what_to_check, 00087 bool snapshot, 00088 bool cache_directory_tagging, 00089 bool display_skipped, 00090 bool security_check, 00091 const infinint & repeat_count, 00092 const infinint & repeat_byte, 00093 const infinint & fixed_date, 00094 const infinint & sparse_file_min_size, 00095 const std::string & backup_hook_file_execute, 00096 const mask & backup_hook_file_mask, 00097 bool ignore_unknown); 00098 00099 extern void filtre_difference(user_interaction & dialog, 00100 const mask &filtre, 00101 const mask &subtree, 00102 catalogue & cat, 00103 const path & fs_racine, 00104 bool info_details, 00105 statistics & st, 00106 const mask & ea_mask, 00107 bool alter_time, 00108 bool furtive_read_mode, 00109 inode::comparison_fields what_to_check, 00110 bool display_skipped, 00111 const infinint & hourshift, 00112 bool compare_symlink_date); 00113 00114 extern void filtre_test(user_interaction & dialog, 00115 const mask &filtre, 00116 const mask &subtree, 00117 catalogue & cat, 00118 bool info_details, 00119 bool empty, 00120 statistics & st, 00121 bool display_skipped); 00122 00123 extern void filtre_isolate(user_interaction & dialog, 00124 catalogue & cat, 00125 catalogue & ref, 00126 bool info_details); 00127 00128 extern void filtre_merge(user_interaction & dialog, 00129 const mask & filtre, 00130 const mask & subtree, 00131 pile & stack, 00132 catalogue & cat, 00133 catalogue * ref1, 00134 catalogue * ref2, 00135 bool info_details, 00136 statistics & st, 00137 bool make_empty_dir, 00138 const mask & ea_mask, 00139 const mask & compr_mask, 00140 const infinint & min_compr_size, 00141 bool display_skipped, 00142 bool keep_compressed, 00143 const crit_action & overwrite, 00144 bool warn_overwrite, 00145 bool decremental_mode, 00146 const infinint & sparse_file_min_size); 00147 00149 00150 } // end of namespace 00151 00152 #endif