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