aboutsummaryrefslogtreecommitdiff
path: root/src/support/dom_document_guard.cc
diff options
context:
space:
mode:
authorAdrian Kummerländer2014-04-26 11:21:10 +0200
committerAdrian Kummerländer2014-04-26 11:21:10 +0200
commit0b611b7bd28851fe8096b3d2c121c68e231ada11 (patch)
tree80352794dce96cec2b86659e5a8260fb9a7686c2 /src/support/dom_document_guard.cc
parent938ed7622656c3494ae8fdb83bc2ad4b1f31d901 (diff)
downloadInputXSLT-0b611b7bd28851fe8096b3d2c121c68e231ada11.tar
InputXSLT-0b611b7bd28851fe8096b3d2c121c68e231ada11.tar.gz
InputXSLT-0b611b7bd28851fe8096b3d2c121c68e231ada11.tar.bz2
InputXSLT-0b611b7bd28851fe8096b3d2c121c68e231ada11.tar.lz
InputXSLT-0b611b7bd28851fe8096b3d2c121c68e231ada11.tar.xz
InputXSLT-0b611b7bd28851fe8096b3d2c121c68e231ada11.tar.zst
InputXSLT-0b611b7bd28851fe8096b3d2c121c68e231ada11.zip
Implemented global DOM document cache
* the plan to return XML-nodes from each external function requires a better way to manage the lifetime of many xerces DOM document instances and their support class instances ** this is why DomDocumentCache and DomDocumentCache::item were implemented ** based on std::map so we can easily access the result of old function calls * changed external read-directory function to return the children of the document node instead of the document node itself ** removes unnecessary cruft in function calls ** will make returning status codes alongside the function result more pleasing to the eye * updated test transformation to reflect new features
Diffstat (limited to 'src/support/dom_document_guard.cc')
-rw-r--r--src/support/dom_document_guard.cc45
1 files changed, 0 insertions, 45 deletions
diff --git a/src/support/dom_document_guard.cc b/src/support/dom_document_guard.cc
deleted file mode 100644
index a83345f..0000000
--- a/src/support/dom_document_guard.cc
+++ /dev/null
@@ -1,45 +0,0 @@
-#include "support/dom_document_guard.h"
-
-#include <xercesc/dom/DOMImplementation.hpp>
-#include <xercesc/util/XMLString.hpp>
-
-namespace InputXSLT {
-
-DomDocumentGuard::DomDocumentGuard(const std::string& rootNode):
- parser_(),
- dom_support_(parser_),
- root_node_name_(
- xercesc::XMLString::transcode(rootNode.data())
- ),
- document_(
- xercesc::DOMImplementation::getImplementation()->createDocument(
- nullptr,
- root_node_name_,
- nullptr
- )
- ),
- parsed_source_() { }
-
-DomDocumentGuard::~DomDocumentGuard() {
- xercesc::XMLString::release(&this->root_node_name_);
-
- this->document_->release();
-}
-
-xercesc::DOMDocument* DomDocumentGuard::operator->() {
- return this->document_;
-}
-
-xalan::XalanDocument* DomDocumentGuard::finalize() {
- this->parsed_source_.reset(
- new xalan::XercesDOMWrapperParsedSource(
- document_,
- parser_,
- dom_support_
- )
- );
-
- return this->parsed_source_->getDocument();
-}
-
-}