summaryrefslogtreecommitdiff
path: root/slicer/xml/serializer.h
diff options
context:
space:
mode:
Diffstat (limited to 'slicer/xml/serializer.h')
-rw-r--r--slicer/xml/serializer.h34
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