aboutsummaryrefslogtreecommitdiff
path: root/src/function/read_directory.h
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/function/read_directory.h
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/function/read_directory.h')
-rw-r--r--src/function/read_directory.h12
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;