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/function/read_directory.h | |
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/function/read_directory.h')
-rw-r--r-- | src/function/read_directory.h | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/function/read_directory.h b/src/function/read_directory.h index 782ebed..3fcf389 100644 --- a/src/function/read_directory.h +++ b/src/function/read_directory.h @@ -6,18 +6,15 @@ #include <xalanc/XPath/Function.hpp> #include <xalanc/XPath/XObject.hpp> -#include <memory> -#include <stack> - #include "common.h" #include "support/filesystem_context.h" -#include "support/dom_document_guard.h" +#include "support/dom/document_cache.h" namespace InputXSLT { class FunctionReadDirectory : public xalan::Function { public: - FunctionReadDirectory(const FilesystemContext&); + FunctionReadDirectory(const FilesystemContext&, DomDocumentCache&); virtual xalan::XObjectPtr execute( xalan::XPathExecutionContext&, @@ -33,10 +30,7 @@ class FunctionReadDirectory : public xalan::Function { private: const FilesystemContext& fs_context_; - - std::shared_ptr< - std::stack<DomDocumentGuard> - > documents_; + DomDocumentCache& document_cache_; const xalan::XalanDOMString& getError(xalan::XalanDOMString&) const; |