diff options
author | Adrian Kummerländer | 2014-04-26 11:21:10 +0200 |
---|---|---|
committer | Adrian Kummerländer | 2014-04-26 11:21:10 +0200 |
commit | 0b611b7bd28851fe8096b3d2c121c68e231ada11 (patch) | |
tree | 80352794dce96cec2b86659e5a8260fb9a7686c2 /src/support/dom_document_guard.cc | |
parent | 938ed7622656c3494ae8fdb83bc2ad4b1f31d901 (diff) | |
download | InputXSLT-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.cc | 45 |
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(); -} - -} |