aboutsummaryrefslogtreecommitdiff
path: root/src/function/read_directory.h
diff options
context:
space:
mode:
authorAdrian Kummerländer2014-05-05 20:42:36 +0200
committerAdrian Kummerländer2014-05-05 20:42:36 +0200
commit9aad4dffd9c8b0fde534b3abc3c27875547423fa (patch)
treeefe5f9af32f9854c6bc7f2caed3c01a4369ca41e /src/function/read_directory.h
parentbd24e3fe6335bc776400be6bcb44a0701ecc4133 (diff)
downloadInputXSLT-9aad4dffd9c8b0fde534b3abc3c27875547423fa.tar
InputXSLT-9aad4dffd9c8b0fde534b3abc3c27875547423fa.tar.gz
InputXSLT-9aad4dffd9c8b0fde534b3abc3c27875547423fa.tar.bz2
InputXSLT-9aad4dffd9c8b0fde534b3abc3c27875547423fa.tar.lz
InputXSLT-9aad4dffd9c8b0fde534b3abc3c27875547423fa.tar.xz
InputXSLT-9aad4dffd9c8b0fde534b3abc3c27875547423fa.tar.zst
InputXSLT-9aad4dffd9c8b0fde534b3abc3c27875547423fa.zip
Encapsulated common parts of external function inplementations
* common parts were moved into CRTP template base class _FunctionBase_ * all external functions are derived from that class ** only have to implement _constructDocument_ member method ** currently only supports a single string input parameter which is enough for now * this change condenses external funtion implementations to the essential and should increase readability as well as maintainability
Diffstat (limited to 'src/function/read_directory.h')
-rw-r--r--src/function/read_directory.h35
1 files changed, 9 insertions, 26 deletions
diff --git a/src/function/read_directory.h b/src/function/read_directory.h
index 02a0305..2c28642 100644
--- a/src/function/read_directory.h
+++ b/src/function/read_directory.h
@@ -1,38 +1,21 @@
#ifndef INPUTXSLT_SRC_FUNCTION_READ_DIRECTORY_H_
#define INPUTXSLT_SRC_FUNCTION_READ_DIRECTORY_H_
-#include <xalanc/XalanTransformer/XalanTransformer.hpp>
-#include <xalanc/XPath/XObjectFactory.hpp>
-#include <xalanc/XPath/Function.hpp>
-#include <xalanc/XPath/XObject.hpp>
-
-#include <memory>
-
-#include "common.h"
-#include "support/dom/document_cache.h"
+#include "base.h"
namespace InputXSLT {
-class FunctionReadDirectory : public xalan::Function {
+class FunctionReadDirectory : public FunctionBase<FunctionReadDirectory> {
public:
- FunctionReadDirectory();
-
- virtual xalan::XObjectPtr execute(
- xalan::XPathExecutionContext&,
- xalan::XalanNode*,
- const xalan::XObjectPtr,
- const xalan::Locator*
- ) const;
-
- virtual FunctionReadDirectory* clone(xalan::MemoryManager&) const;
-
- FunctionReadDirectory& operator=(const FunctionReadDirectory&) = delete;
- bool operator==(const FunctionReadDirectory&) const = delete;
+ using FunctionBase<FunctionReadDirectory>::FunctionBase;
- private:
- std::shared_ptr<DomDocumentCache> document_cache_;
+ protected:
+ friend FunctionBase<FunctionReadDirectory>;
- const xalan::XalanDOMString& getError(xalan::XalanDOMString&) const;
+ xercesc::DOMDocument* constructDocument(
+ const FilesystemContext&,
+ const boost::filesystem::path&
+ );
};