aboutsummaryrefslogtreecommitdiff
path: root/src/transformation_facade.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/transformation_facade.h')
-rw-r--r--src/transformation_facade.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/transformation_facade.h b/src/transformation_facade.h
index 53f1bbd..f69786a 100644
--- a/src/transformation_facade.h
+++ b/src/transformation_facade.h
@@ -4,16 +4,28 @@
#include <xalanc/XalanTransformer/XalanTransformer.hpp>
#include <string>
+#include <memory>
+#include <functional>
#include "common.h"
#include "support/include_entity_resolver.h"
#include "support/stylesheet_parameter_guard.h"
#include "support/error/error_multiplexer.h"
+#include "support/error/error_capacitor.h"
+#include "support/error/warning_capacitor.h"
namespace InputXSLT {
class TransformationFacade {
public:
+ typedef std::unique_ptr<TransformationFacade> ptr;
+
+ static ptr try_create(
+ const std::string&,
+ IncludeEntityResolver*,
+ const std::function<void(const ErrorCapacitor::error_cache&)>&
+ );
+
TransformationFacade(const std::string&, IncludeEntityResolver*);
~TransformationFacade();
@@ -26,11 +38,14 @@ class TransformationFacade {
template <typename Target>
void generate(Target&, const xalan::XObjectPtr&);
+ WarningCapacitor::warning_cache_ptr getCachedWarnings();
+
private:
const xalan::XalanCompiledStylesheet* transformation_;
xalan::XalanTransformer transformer_;
ErrorMultiplexer error_multiplexer_;
+ WarningCapacitor warning_capacitor_;
void generate(const std::string&, StylesheetParameterGuard&);
void generate(std::basic_ostream<char>&, StylesheetParameterGuard&);