diff --git a/alib2abstraction/src/registration/AlgoRegistration.hpp b/alib2abstraction/src/registration/AlgoRegistration.hpp index 646da94474361a710bd190612fa30c0329297d93..68352a479c8e7f8fc4e24516e54e3629dd98bb85 100644 --- a/alib2abstraction/src/registration/AlgoRegistration.hpp +++ b/alib2abstraction/src/registration/AlgoRegistration.hpp @@ -64,12 +64,19 @@ public: } WrapperRegister ( WrapperRegister && ) = default; + + WrapperRegister && setDocumentation ( std::string documentation ) && { + abstraction::AlgorithmRegistry::setDocumentationOfWrapper < Algorithm, ParameterTypes ... > ( std::move ( documentation ) ); + return std::move ( * this ); + } }; template < class Algorithm, class ReturnType, class ObjectType, class ... ParameterTypes > class MethodRegister : public ext::Register < void > { registration::NormalizationRegister < ReturnType > normalize; + std::string m_methodName; + public: template < class ... ParamNames > MethodRegister ( ReturnType ( ObjectType::* callback ) ( ParameterTypes ... ), std::string methodName, ParamNames ... paramNames ) : ext::Register < void > ( [=] ( ) { @@ -78,11 +85,16 @@ public: abstraction::AlgorithmRegistry::registerMethod < Algorithm > ( callback, methodName, std::move ( parameterNames ) ); }, [=] ( ) { abstraction::AlgorithmRegistry::unregisterMethod < Algorithm, ObjectType, ParameterTypes ... > ( methodName ); - } ) { + } ), m_methodName ( methodName ) { } MethodRegister ( MethodRegister && ) = default; + MethodRegister && setDocumentation ( std::string documentation ) && { + abstraction::AlgorithmRegistry::setDocumentationOfMethod < Algorithm, ObjectType, ParameterTypes ... > ( m_methodName, std::move ( documentation ) ); + return std::move ( * this ); + } + }; } /* namespace registration */ diff --git a/alib2raw/src/registration/RawRegistration.hpp b/alib2raw/src/registration/RawRegistration.hpp index 4cdb01f64897a4170066194faca584228da4bce4..a8500942b95eb33519a31140048d0aef57ee09e1 100644 --- a/alib2raw/src/registration/RawRegistration.hpp +++ b/alib2raw/src/registration/RawRegistration.hpp @@ -38,6 +38,11 @@ public: RawReaderRegister ( ) { abstraction::RawReaderRegistry::registerRawReader < Type > ( ); abstraction::AlgorithmRegistry::registerWrapper < raw::Parse < Type >, Type, const std::string & > ( raw::Parse < Type >::abstractionFromString, std::array < std::string, 1 > { { "arg0" } } ); + abstraction::AlgorithmRegistry::setDocumentationOfWrapper < raw::Parse < Type >, const std::string & > ( +"Raw parsing of " + ext::to_string < Type > ( ) + ".\n\ +\n\ +@param arg0 the parsed string\n\ +@return value parsed from @p arg0" ); } ~RawReaderRegister ( ) { @@ -52,6 +57,11 @@ public: RawWriterRegister ( ) { abstraction::RawWriterRegistry::registerRawWriter < Type > ( ); abstraction::AlgorithmRegistry::registerWrapper < raw::Compose, std::string, const Type & > ( raw::Compose::abstractionFromType, std::array < std::string, 1 > { { "arg0" } } ); + abstraction::AlgorithmRegistry::setDocumentationOfWrapper < raw::Compose, const Type & > ( +"Raw composing algorithm.\n\ +\n\ +@param arg0 the composed value\n\ +@return the @p arg0 in raw representation" ); } ~RawWriterRegister ( ) { diff --git a/alib2str/src/registration/StringRegistration.hpp b/alib2str/src/registration/StringRegistration.hpp index ca3ee9029949eb18288c6143ed118e010e91481d..42b8041fa37d4be7046f415cedd0e78da6901844 100644 --- a/alib2str/src/registration/StringRegistration.hpp +++ b/alib2str/src/registration/StringRegistration.hpp @@ -51,6 +51,11 @@ class StringReaderGroupRegister { public: StringReaderGroupRegister ( ) { abstraction::AlgorithmRegistry::registerWrapper < string::Parse < Group >, abstraction::UnspecifiedType, std::string && > ( string::Parse < Group >::abstractionFromString, std::array < std::string, 1 > { { "arg0" } } ); + abstraction::AlgorithmRegistry::setDocumentationOfWrapper < string::Parse < Group >, std::string && > ( +"String parsing of datatype in " + ext::to_string < Group > ( ) + " category.\n\ +\n\ +@param arg0 the parsed string\n\ +@return value parsed from @p arg0" ); } ~StringReaderGroupRegister ( ) { @@ -64,6 +69,11 @@ public: StringWriterRegister ( ) { abstraction::StringWriterRegistry::registerStringWriter < Type > ( ); abstraction::AlgorithmRegistry::registerWrapper < string::Compose, std::string, const Type & > ( string::Compose::abstractionFromType, std::array < std::string, 1 > { { "arg0" } } ); + abstraction::AlgorithmRegistry::setDocumentationOfWrapper < string::Compose, const Type & > ( +"String composing algorithm.\n\ +\n\ +@param arg0 the composed value\n\ +@return the @p arg0 in string representation" ); } ~StringWriterRegister ( ) { diff --git a/alib2xml/src/registration/XmlRegistration.cpp b/alib2xml/src/registration/XmlRegistration.cpp index 0352a604d04559a133072a1103671edf037cd88d..ea9a99d07a2fa0658a0b43e51ff2eafaa1d80d16 100644 --- a/alib2xml/src/registration/XmlRegistration.cpp +++ b/alib2xml/src/registration/XmlRegistration.cpp @@ -3,6 +3,10 @@ namespace { -auto xmlParse = registration::WrapperRegister < xml::Parse, abstraction::UnspecifiedType, ext::deque < sax::Token > && > ( xml::Parse::abstractionFromTokens, "arg0" ); +auto xmlParse = registration::WrapperRegister < xml::Parse, abstraction::UnspecifiedType, ext::deque < sax::Token > && > ( xml::Parse::abstractionFromTokens, "arg0" ).setDocumentation ( +"Xml parsing of datatype.\n\ +\n\ +@param arg0 the parsed sequence of xml tokens\n\ +@return value parsed from @p arg0" ); } diff --git a/alib2xml/src/registration/XmlRegistration.hpp b/alib2xml/src/registration/XmlRegistration.hpp index 9e159c91092b5226a76e671504c136df72a0daa6..7fcd06158e5dc18219e4f38e056e6d9d92df42fe 100644 --- a/alib2xml/src/registration/XmlRegistration.hpp +++ b/alib2xml/src/registration/XmlRegistration.hpp @@ -50,6 +50,11 @@ public: XmlWriterRegister ( ) { abstraction::XmlComposerRegistry::registerXmlComposer < Type > ( ); abstraction::AlgorithmRegistry::registerWrapper < xml::Compose, ext::deque < sax::Token >, const Type & > ( xml::Compose::abstractionFromType, std::array < std::string, 1 > { { "arg0" } } ); + abstraction::AlgorithmRegistry::setDocumentationOfWrapper < xml::Compose, const Type & > ( +"Xml composing algorithm.\n\ +\n\ +@param arg0 the composed value\n\ +@return the @p arg0 in xml tokens representation" ); } ~XmlWriterRegister ( ) {