OpenLexocad  27.1
Persistence.h
Go to the documentation of this file.
1 #pragma once
2 #include <Base/Base.h>
3 #include <Base/String.h>
4 #include <assert.h>
5 
6 namespace Base
7 {
8 class Reader;
9 class Writer;
10 class XMLReader;
11 class AbstractXMLReader;
12 class AbstractWriter;
13 
14 class LX_BASE_EXPORT PersistenceVersion
15 {
16 public:
17  int number = 0;
18  int documentVersionMajor = 0;
19  int documentVersionMinor = 0;
20 };
21 
23 class LX_BASE_EXPORT Persistence : public Base::BaseClass
24 {
26 
27 public:
29  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) = 0;
30 
32  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) = 0;
33 
35  virtual void saveDocFile(Base::AbstractWriter& /*writer*/, const Base::String& /*filename*/, const Base::String& /*tmpdir*/) { assert(0); }
37  virtual void restoreDocFile(Base::Reader& /*reader*/, const Base::String& /*tmpdir*/) { assert(0); }
39  virtual bool mustbeSaved() const { return false; }
40 
42  virtual bool createSQL(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/, bool) { return false; }
43 
44  static std::string encodeAttribute(const std::string&);
45 };
46 
47 } // namespace Base
48 
49 
50 
Definition: Persistence.h:14
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:23
Persistence class and root of the type system.
Definition: Persistence.h:23
virtual bool mustbeSaved() const
Return 'true' if this object must always be saved in the file.
Definition: Persistence.h:39
Definition: Writer.h:198
Definition: AbstractXMLReader.h:7
BaseClass class and root of the type system.
Definition: Base.h:85
virtual void restoreDocFile(Base::Reader &, const Base::String &)
This method is used to restore large amounts of data from a binary file.
Definition: Persistence.h:37
virtual void saveDocFile(Base::AbstractWriter &, const Base::String &, const Base::String &)
This method is used to save large amounts of data to a binary file.
Definition: Persistence.h:35
Definition: Writer.h:16
Definition: AbstractXMLReader.h:5
TYPESYSTEM_HEADER()
virtual bool createSQL(Base::AbstractWriter &, Base::PersistenceVersion &, bool)
This method is used to save properties or very small amounts of data to an XML document.
Definition: Persistence.h:42