1 /* 2 persistence.h MindForger thinking notebook 3 4 Copyright (C) 2016-2020 Martin Dvorak <martin.dvorak@mindforger.com> 5 6 This program is free software; you can redistribute it and/or 7 modify it under the terms of the GNU General Public License 8 as published by the Free Software Foundation; either version 2 9 of the License, or (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 #ifndef M8R_PERSISTENCE_H_ 20 #define M8R_PERSISTENCE_H_ 21 22 #include "../model/stencil.h" 23 #include "../model/outline.h" 24 25 namespace m8r { 26 27 /** 28 * @brief Persistence. 29 */ 30 class Persistence { 31 public: ~Persistence()32 virtual ~Persistence() {} 33 34 virtual std::string createFileName( 35 const std::string& directory, 36 const std::string* text, 37 const std::string& extension) = 0; 38 virtual void load(Stencil* stencil) = 0; 39 virtual void save(Outline* outline) = 0; 40 virtual void saveAsHtml(Outline* outline, const std::string& fileName) = 0; 41 }; 42 43 } 44 45 #endif /* M8R_PERSISTENCE_H_ */ 46