From 20fca5978b55606062cdaf4c94dec82f5318a62a Mon Sep 17 00:00:00 2001 From: Adrian Kummerländer Date: Sun, 11 May 2014 20:09:34 +0200 Subject: Switched internal DomDocumentCache structure to std::stack * using std::unordered_map for named cache lookups was a nice idea but is not useful when one keeps in mind that: ** we don't want cached external function responses in a situation where we are able to execute transformations inside transformations ** cached responses mean that we can not read a xml file, overwrite it using another transformation and then read it again * the currently available InputXSLT frontend only processes a single transformation anyway, so increased memory requirements should not pose a problem ** if a future frontend should offer batch processing of transformation tasks, one could implement a cache reset method to free memory after a transformation has been processed --- src/support/dom/document_cache.h | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'src/support/dom/document_cache.h') diff --git a/src/support/dom/document_cache.h b/src/support/dom/document_cache.h index cbac5c7..1f9a9e3 100644 --- a/src/support/dom/document_cache.h +++ b/src/support/dom/document_cache.h @@ -5,9 +5,8 @@ #include -#include #include -#include +#include #include #include "common.h" @@ -16,18 +15,15 @@ namespace InputXSLT { class DomDocumentCache { public: - typedef std::pair optional_item; - DomDocumentCache(); - optional_item get(const std::string&); - optional_item create(const std::string&, xercesc::DOMDocument*); + xalan::XalanDocument* create(xercesc::DOMDocument*); private: class item; std::mutex write_mutex_; - std::unordered_map> map_; + std::stack> cache_; }; -- cgit v1.2.3