diff options
Diffstat (limited to 'slicer/xml/serializer.h')
-rw-r--r-- | slicer/xml/serializer.h | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/slicer/xml/serializer.h b/slicer/xml/serializer.h index 487070b..842b565 100644 --- a/slicer/xml/serializer.h +++ b/slicer/xml/serializer.h @@ -2,32 +2,38 @@ #define SLICER_XML_H #include <slicer/serializer.h> - -namespace xmlpp { - class Document; - class Node; - class Element; - class Attribute; - class ContentNode; -} +#include <libxml++/document.h> namespace Slicer { class Xml : public Serializer { - public: - Xml(const boost::filesystem::path &); - - virtual void Deserialize(ModelPartPtr) override; - virtual void Serialize(ModelPartPtr) override; - protected: static void DocumentTreeIterate(const xmlpp::Node * node, ModelPartPtr mp); static void DocumentTreeIterate(const xmlpp::Document * doc, ModelPartPtr mp); static void ModelTreeIterate(xmlpp::Element *, const std::string &, ModelPartPtr mp); static void ModelTreeIterateRoot(xmlpp::Document *, const std::string &, ModelPartPtr mp); + }; + + class XmlFile : public Xml { + public: + XmlFile(const boost::filesystem::path &); + + virtual void Deserialize(ModelPartPtr) override; + virtual void Serialize(ModelPartPtr) override; private: const boost::filesystem::path path; }; + + class XmlDocument : public Xml { + public: + XmlDocument(xmlpp::Document * &); + + virtual void Deserialize(ModelPartPtr) override; + virtual void Serialize(ModelPartPtr) override; + + private: + xmlpp::Document * & doc; + }; } #endif |