#pragma once #include namespace Base { class Reader; class Writer; class XMLReader; class BaseClass { public: virtual ~BaseClass() = default; virtual PyObject* getPyObject() { return nullptr; } }; class Persistence : public BaseClass { public: ~Persistence() override = default; virtual unsigned int getMemSize() const = 0; virtual void Save(Writer&) const = 0; virtual void Restore(XMLReader&) = 0; virtual void SaveDocFile(Writer&) const = 0; virtual void RestoreDocFile(Reader&) = 0; }; } // namespace Base #define TYPESYSTEM_HEADER() #define TYPESYSTEM_HEADER_WITH_OVERRIDE() #define TYPESYSTEM_SOURCE(...) #define TYPESYSTEM_SOURCE_ABSTRACT(...)