1 /*********************************************************************/ 2 // dar - disk archive - a backup/restoration program 3 // Copyright (C) 2002-2052 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 // 19 // to contact the author : http://dar.linux.free.fr/email.html 20 /*********************************************************************/ 21 22 /// \file config_file.hpp 23 /// \brief specific routines to manages included files's targets 24 /// \ingroup CMDLINE 25 26 27 #ifndef CONFIG_FILE_HPP 28 #define CONFIG_FILE_HPP 29 30 #include "../my_config.h" 31 #include <vector> 32 #include "hide_file.hpp" 33 34 using namespace libdar; 35 36 /// \addtogroup CMDLINE 37 /// @{ 38 39 class config_file : public hide_file 40 { 41 public: 42 config_file(const vector<string> & target, generic_file &f); 43 44 45 vector<string> get_read_targets() const; 46 47 protected: 48 void fill_morceau(); 49 50 private: 51 struct t_cible 52 { 53 string target; 54 bool seen; 55 t_cibleconfig_file::t_cible56 t_cible(const string & val) { target = val; seen = false; }; t_cibleconfig_file::t_cible57 t_cible() { target = ""; seen = false; }; 58 }; 59 60 vector<t_cible> cibles; 61 62 bool is_a_target(const string & val); 63 bool find_next_target(generic_file &f, infinint & debut, string & nature, infinint & fin); 64 65 }; 66 67 /// @} 68 69 #endif 70