OpenLexocad  28.0
Persistence.h
Go to the documentation of this file.
1 #pragma once
2 #include <Base/Base.h>
3 #include <cassert>
4 
5 namespace Base
6 {
7 class Reader;
8 class AbstractXMLReader;
9 class AbstractWriter;
10 class String;
11 
12 class LX_BASE_EXPORT PersistenceVersion
13 {
14 public:
15  int number = 0;
16  int documentVersionMajor = 0;
17  int documentVersionMinor = 0;
18 };
19 
21 class LX_BASE_EXPORT Persistence : public Base::BaseClass
22 {
24 
25 public:
27  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) = 0;
28 
30  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) = 0;
31 
33  virtual void saveDocFile(Base::AbstractWriter& /*writer*/, const Base::String& /*filename*/, const Base::String& /*tmpdir*/) { assert(0); }
35  virtual void restoreDocFile(Base::Reader& /*reader*/, const Base::String& /*tmpdir*/) { assert(0); }
37  virtual bool mustbeSaved() const { return false; }
38 
40  virtual bool createSQL(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/, bool) { return false; }
41 
42  static std::string encodeAttribute(const std::string&);
43 };
44 
45 } // namespace Base
Base::Persistence::createSQL
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:40
Base::BaseClass
BaseClass class and root of the type system.
Definition: Base.h:78
Base::Persistence
Persistence class and root of the type system.
Definition: Persistence.h:22
Base::Persistence::encodeAttribute
static std::string encodeAttribute(const std::string &)
Base::Persistence::mustbeSaved
virtual bool mustbeSaved() const
Return 'true' if this object must always be saved in the file.
Definition: Persistence.h:37
Base::PersistenceVersion
Definition: Persistence.h:13
Base::AbstractWriter
Definition: Writer.h:13
Base.h
Base::Persistence::saveDocFile
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:33
Base::AbstractXMLReader
Definition: AbstractXMLReader.h:7
Base::Persistence::restoreDocFile
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:35
Base::Persistence::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &)=0
This method is used to save properties or very small amounts of data to an XML document.
Base::Persistence::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &)=0
This method is used to restore properties from an XML document.
Base::String
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:18
Base::Reader
Definition: Writer.h:205
TYPESYSTEM_HEADER
#define TYPESYSTEM_HEADER()
define for subclassing Base::BaseClass
Definition: Base.h:12
Base
Definition: AbstractXMLReader.h:5