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 database_header.hpp 23 /// \brief defines the database structure in file 24 /// \ingroup Private 25 26 #ifndef DATABASE_HEADER_HPP 27 #define DATABASE_HEADER_HPP 28 29 #include "../my_config.h" 30 #include "infinint.hpp" 31 #include "generic_file.hpp" 32 33 #include "user_interaction.hpp" 34 35 namespace libdar 36 { 37 38 /// \ingroup Private 39 /// @} 40 41 /// create the header for a dar_manager database 42 43 /// \param[in] dialog is used for user interaction 44 /// \param[in] pool memory pool to use or nullptr for default memory allocation 45 /// \param[in] filename is the file's name to create/overwrite 46 /// \param[in] overwrite set to true to allow file overwriting (else generates an error if file exists) 47 /// \return the database header has been read and checked the database can now be read from the returned generic_file pointed by the returned value 48 /// then it must be destroyed with the delete operator. 49 extern generic_file *database_header_create(user_interaction & dialog, 50 memory_pool *pool, 51 const std::string & filename, 52 bool overwrite); 53 54 /// read the header of a dar_manager database 55 56 /// \param[in] dialog for user interaction 57 /// \param[in] pool memory pool to use or nullptr for default memory allocation 58 /// \param[in] filename is the filename to read from 59 /// \param[out] db_version version of the database 60 /// \return the generic_file where the database header has been put 61 extern generic_file *database_header_open(user_interaction & dialog, 62 memory_pool *pool, 63 const std::string & filename, 64 unsigned char & db_version); 65 66 extern const unsigned char database_header_get_supported_version(); 67 68 ///@} 69 70 } // end of namespace 71 72 #endif 73