1 /* 2 * Copyright (C) 2018 Rafael Ostertag 3 * 4 * This file is part of YAPET. 5 * 6 * YAPET is free software: you can redistribute it and/or modify it under the 7 * terms of the GNU General Public License as published by the Free Software 8 * Foundation, either version 3 of the License, or (at your option) any later 9 * version. 10 * 11 * YAPET is distributed in the hope that it will be useful, but WITHOUT ANY 12 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 * details. 15 * 16 * You should have received a copy of the GNU General Public License along with 17 * YAPET. If not, see <http://www.gnu.org/licenses/>. 18 * 19 * Additional permission under GNU GPL version 3 section 7 20 * 21 * If you modify this program, or any covered work, by linking or combining it 22 * with the OpenSSL project's OpenSSL library (or a modified version of that 23 * library), containing parts covered by the terms of the OpenSSL or SSLeay 24 * licenses, Rafael Ostertag grants you additional permission to convey the 25 * resulting work. Corresponding Source for a non-source form of such a 26 * combination shall include the source code for the parts of OpenSSL used as 27 * well as that of the covered work. 28 */ 29 30 #ifndef _CSVEXPORT_H 31 #define _CSVEXPORT_H 1 32 33 #ifdef HAVE_CONFIG_H 34 #include "config.h" 35 #endif 36 37 #include <list> 38 #include <stdexcept> 39 #include <string> 40 41 #include "crypto.hh" 42 #include "csvline.hh" 43 44 /** 45 * The class taking care of converting a pet file to a csv file. 46 */ 47 class CSVExport { 48 private: 49 /** 50 * The file path of the source (csv) file. 51 */ 52 std::string srcfile; 53 /** 54 * The file path of the destination (pet) file. 55 */ 56 std::string dstfile; 57 /** 58 * The separator character. 59 */ 60 char separator; 61 /** 62 * Verbosity enabled/disabled. 63 */ 64 bool _verbose; 65 66 /** 67 * Print header 68 */ 69 bool _print_header; 70 71 public: 72 CSVExport(std::string src, std::string dst, char sep, bool verb = true, 73 bool print_header = false); ~CSVExport()74 ~CSVExport(){}; 75 /// Do the import. 76 void doexport(const char* pw); 77 /// Set the verbosity. verbose(bool v)78 inline void verbose(bool v) { _verbose = v; } 79 /// Get the verbosity. verbose()80 inline bool verbose() const { return _verbose; } 81 }; 82 83 #endif // _CSVEXPORT_H 84