From 5ad00ece0ac79b1db816c7858bf4fe4fc6fed253 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Wed, 16 May 2018 10:00:11 +0200
Subject: [PATCH] static registration of xml parse wrapper

---
 alib2abstraction/src/registration/AlgoRegistration.hpp | 2 ++
 alib2xml/src/registration/XmlRegistration.cpp          | 8 ++++++++
 alib2xml/src/registration/XmlRegistration.hpp          | 1 -
 3 files changed, 10 insertions(+), 1 deletion(-)
 create mode 100644 alib2xml/src/registration/XmlRegistration.cpp

diff --git a/alib2abstraction/src/registration/AlgoRegistration.hpp b/alib2abstraction/src/registration/AlgoRegistration.hpp
index 8ce6015722..a61d70425e 100644
--- a/alib2abstraction/src/registration/AlgoRegistration.hpp
+++ b/alib2abstraction/src/registration/AlgoRegistration.hpp
@@ -53,6 +53,8 @@ class MethodRegister : public AlgoRegister {
 public:
 	template < class ... ParamNames >
 	MethodRegister ( ReturnType ( ObjectType::* callback ) ( ParameterTypes ... ), std::string methodName, ParamNames ... paramNames ) {
+		registration::NormalizationRegister < ReturnType > ( );
+
 		std::array < std::string, sizeof ... ( ParameterTypes ) > parameterNames = generateNames < sizeof ... ( ParameterTypes ) > ( paramNames ... );
 
 		abstraction::AlgorithmRegistry::registerMethod < Algorithm > ( callback, methodName, std::move ( parameterNames ) );
diff --git a/alib2xml/src/registration/XmlRegistration.cpp b/alib2xml/src/registration/XmlRegistration.cpp
new file mode 100644
index 0000000000..25d49053f0
--- /dev/null
+++ b/alib2xml/src/registration/XmlRegistration.cpp
@@ -0,0 +1,8 @@
+#include "XmlRegistration.hpp"
+#include <registration/AlgoRegistration.hpp>
+
+namespace {
+
+auto xmlParse = registration::WrapperRegister < xml::Parse, ext::deque < sax::Token > && > ( xml::Parse::abstractionFromTokens, "arg0" );
+
+}
diff --git a/alib2xml/src/registration/XmlRegistration.hpp b/alib2xml/src/registration/XmlRegistration.hpp
index 7c3ab5db4e..2b43550f93 100644
--- a/alib2xml/src/registration/XmlRegistration.hpp
+++ b/alib2xml/src/registration/XmlRegistration.hpp
@@ -37,7 +37,6 @@ class XmlReaderRegister {
 public:
 	XmlReaderRegister ( ) {
 		abstraction::XmlParserRegistry::registerXmlParser < Type > ( );
-		abstraction::AlgorithmRegistry::registerWrapper < xml::Parse, ext::deque < sax::Token > && > ( xml::Parse::abstractionFromTokens, std::array < std::string, 1 > { { "arg0" } } );
 	}
 };
 
-- 
GitLab