summaryrefslogtreecommitdiff
path: root/slicer/xml/serializer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'slicer/xml/serializer.cpp')
-rw-r--r--slicer/xml/serializer.cpp22
1 files changed, 3 insertions, 19 deletions
diff --git a/slicer/xml/serializer.cpp b/slicer/xml/serializer.cpp
index 76efa95..96c1a9f 100644
--- a/slicer/xml/serializer.cpp
+++ b/slicer/xml/serializer.cpp
@@ -441,14 +441,11 @@ namespace Slicer {
void
XmlStreamSerializer::Serialize(ModelPartForRootPtr modelRoot)
{
- xmlpp::Document doc;
- modelRoot->OnEachChild([&doc](auto && PH1, auto && PH2, auto &&) {
- return XmlSerializer::ModelTreeIterateRoot(&doc, PH1, PH2);
- });
+ XmlDocumentSerializer::Serialize(modelRoot);
doc.write_to_stream(strm);
}
- XmlFileSerializer::XmlFileSerializer(std::filesystem::path p) : path(std::move(p)) { }
+ XmlFileSerializer::XmlFileSerializer(const std::filesystem::path & p) : XmlStreamSerializer {strm}, strm(p) { }
XmlFileDeserializer::XmlFileDeserializer(std::filesystem::path p) : path(std::move(p)) { }
@@ -460,18 +457,6 @@ namespace Slicer {
DocumentTreeIterate(doc, modelRoot);
}
- void
- XmlFileSerializer::Serialize(ModelPartForRootPtr modelRoot)
- {
- xmlpp::Document doc;
- modelRoot->OnEachChild([&doc](auto && PH1, auto && PH2, auto &&) {
- return XmlSerializer::ModelTreeIterateRoot(&doc, PH1, PH2);
- });
- doc.write_to_file_formatted(path);
- }
-
- XmlDocumentSerializer::XmlDocumentSerializer(xmlpp::Document *& d) : doc(d) { }
-
XmlDocumentDeserializer::XmlDocumentDeserializer(const xmlpp::Document * d) : doc(d) { }
void
@@ -483,9 +468,8 @@ namespace Slicer {
void
XmlDocumentSerializer::Serialize(ModelPartForRootPtr modelRoot)
{
- doc = new xmlpp::Document();
modelRoot->OnEachChild([this](auto && PH1, auto && PH2, auto &&) {
- return XmlSerializer::ModelTreeIterateRoot(doc, PH1, PH2);
+ return XmlSerializer::ModelTreeIterateRoot(&doc, PH1, PH2);
});
}