diff options
| author | Adrian Kummerländer | 2014-04-26 15:17:07 +0200 | 
|---|---|---|
| committer | Adrian Kummerländer | 2014-04-26 15:17:07 +0200 | 
| commit | 7e7b112e6c00bcce0b339652748079cf7c9f1430 (patch) | |
| tree | 645cab42adbfa79f0a32ed85f00805f73263d9f6 /src/function | |
| parent | 0b611b7bd28851fe8096b3d2c121c68e231ada11 (diff) | |
| download | InputXSLT-7e7b112e6c00bcce0b339652748079cf7c9f1430.tar InputXSLT-7e7b112e6c00bcce0b339652748079cf7c9f1430.tar.gz InputXSLT-7e7b112e6c00bcce0b339652748079cf7c9f1430.tar.bz2 InputXSLT-7e7b112e6c00bcce0b339652748079cf7c9f1430.tar.lz InputXSLT-7e7b112e6c00bcce0b339652748079cf7c9f1430.tar.xz InputXSLT-7e7b112e6c00bcce0b339652748079cf7c9f1430.tar.zst InputXSLT-7e7b112e6c00bcce0b339652748079cf7c9f1430.zip | |
Moved DomDocumentCache instances back into external function class
* A global DomDocumentCache instance would require key prefixing
* switched internal data structure to std::unordered_map for average constant time access
Diffstat (limited to 'src/function')
| -rw-r--r-- | src/function/read_directory.cc | 7 | ||||
| -rw-r--r-- | src/function/read_directory.h | 6 | 
2 files changed, 7 insertions, 6 deletions
| diff --git a/src/function/read_directory.cc b/src/function/read_directory.cc index 677aa1d..3f503b3 100644 --- a/src/function/read_directory.cc +++ b/src/function/read_directory.cc @@ -11,10 +11,9 @@  namespace InputXSLT { -FunctionReadDirectory::FunctionReadDirectory(const FilesystemContext& context, -                                             DomDocumentCache& cache): +FunctionReadDirectory::FunctionReadDirectory(const FilesystemContext& context):  	fs_context_(context), -	document_cache_(cache) { } +	document_cache_(std::make_shared<DomDocumentCache>()) { }  xalan::XObjectPtr FunctionReadDirectory::execute(  	xalan::XPathExecutionContext& executionContext, @@ -23,7 +22,7 @@ xalan::XObjectPtr FunctionReadDirectory::execute(  	const xalan::Locator*  ) const {  	DomDocumentCache::item* const cachedDocument( -		this->document_cache_.get(xalanToString(argument->str())) +		this->document_cache_->get(xalanToString(argument->str()))  	);  	if ( !cachedDocument->isFinalized() ) { diff --git a/src/function/read_directory.h b/src/function/read_directory.h index 3fcf389..f4f7ec8 100644 --- a/src/function/read_directory.h +++ b/src/function/read_directory.h @@ -6,6 +6,8 @@  #include <xalanc/XPath/Function.hpp>  #include <xalanc/XPath/XObject.hpp> +#include <memory> +  #include "common.h"  #include "support/filesystem_context.h"  #include "support/dom/document_cache.h" @@ -14,7 +16,7 @@ namespace InputXSLT {  class FunctionReadDirectory : public xalan::Function {  	public: -		FunctionReadDirectory(const FilesystemContext&, DomDocumentCache&); +		FunctionReadDirectory(const FilesystemContext&);  		virtual xalan::XObjectPtr execute(  			xalan::XPathExecutionContext&, @@ -30,7 +32,7 @@ class FunctionReadDirectory : public xalan::Function {  	private:  		const FilesystemContext& fs_context_; -		DomDocumentCache& document_cache_; +		std::shared_ptr<DomDocumentCache> document_cache_;  		const xalan::XalanDOMString& getError(xalan::XalanDOMString&) const; | 
