15#define DECLARE_IMPLICIT_FUNCTION_PARSER(classname) \
17 Mantid::Kernel::RegistrationHelper register_alg_##classname( \
18 ((Mantid::API::ImplicitFunctionParserFactory::Instance().subscribe<classname>(#classname)), 0)); \
27#include <Poco/DOM/DOMParser.h>
28#include <Poco/DOM/Document.h>
29#include <Poco/DOM/Element.h>
30#include <Poco/DOM/NodeFilter.h>
31#include <Poco/DOM/NodeIterator.h>
32#include <Poco/DOM/NodeList.h>
38#include "MantidAPI/DllConfig.h"
53 using SuccessorType = boost::interprocess::unique_ptr<ImplicitFunctionParser, DeleterPolicy<ImplicitFunctionParser>>;
61 return m_paramParserRoot->createParameter(pRoot);
66 std::string message =
"There is no successor function parser. Is this an "
67 "empty composite function?";
68 throw std::runtime_error(message);
This class is the abstract type for building IImplicitFunctions.
boost::interprocess::unique_ptr< ImplicitFunctionParameterParser, DeleterPolicy< ImplicitFunctionParameterParser > > SuccessorType
Successor type.
Abstract parameter type for use with IImplicitFunctions.
XML Parser for function types.
virtual void setParameterParser(ImplicitFunctionParameterParser *parser)=0
ImplicitFunctionParameterParser::SuccessorType m_paramParserRoot
ImplicitFunctionParameter * parseParameter(Poco::XML::Element *pRoot)
ImplicitFunctionParser(ImplicitFunctionParameterParser *parameterParser)
virtual ~ImplicitFunctionParser()=default
virtual ImplicitFunctionBuilder * createFunctionBuilder(Poco::XML::Element *functionElement)=0
virtual void setSuccessorParser(ImplicitFunctionParser *parser)=0
SuccessorType m_successor
boost::interprocess::unique_ptr< ImplicitFunctionParser, DeleterPolicy< ImplicitFunctionParser > > SuccessorType
Successor type. Unique pointer with stack scoped deletion semantics.
void checkSuccessorExists()
Helper class which provides the Collimation Length for SANS instruments.