diff options
Diffstat (limited to 'slicer/xml/serializer.cpp')
-rw-r--r-- | slicer/xml/serializer.cpp | 22 |
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); }); } |