diff options
Diffstat (limited to 'src/plattform_guard.cc')
-rw-r--r-- | src/plattform_guard.cc | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/plattform_guard.cc b/src/plattform_guard.cc new file mode 100644 index 0000000..2c3cee4 --- /dev/null +++ b/src/plattform_guard.cc @@ -0,0 +1,46 @@ +#include "plattform_guard.h" + +#include <xalanc/Include/PlatformDefinitions.hpp> +#include <xalanc/XalanTransformer/XalanTransformer.hpp> + +#include <xercesc/util/PlatformUtils.hpp> + +#include "common.h" +#include "function/read_file.h" +#include "function/read_xml_file.h" +#include "function/read_directory.h" + +namespace InputXSLT { + +PlattformGuard::PlattformGuard() { + xercesc::XMLPlatformUtils::Initialize(); + xalan::XalanTransformer::initialize(); + + const xalan::XalanDOMString customNamespace( + "function.inputxslt.application" + ); + + xalan::XalanTransformer::installExternalFunctionGlobal( + customNamespace, + xalan::XalanDOMString("read-file"), + InputXSLT::FunctionReadFile() + ); + + xalan::XalanTransformer::installExternalFunctionGlobal( + customNamespace, + xalan::XalanDOMString("read-xml-file"), + InputXSLT::FunctionReadXmlFile() + ); + + xalan::XalanTransformer::installExternalFunctionGlobal( + customNamespace, + xalan::XalanDOMString("read-directory"), + InputXSLT::FunctionReadDirectory() + ); +} + +PlattformGuard::~PlattformGuard() { + xalan::XalanTransformer::terminate(); +} + +} |