Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Data Structures | Static Public Member Functions
abstraction::AlgorithmRegistry Class Reference

#include <AlgorithmRegistry.hpp>

Data Structures

class  Entry
 

Static Public Member Functions

template<class Algo , class ObjectType , class ... ParamTypes>
static void setDocumentationOfMethod (const std::string &methodName, const std::string &documentation)
 
template<class Algo , class ... ParamTypes>
static void setDocumentationOfAlgorithm (AlgorithmCategories::AlgorithmCategory category, const std::string &documentation)
 
template<class Algo , class ... ParamTypes>
static void setDocumentationOfWrapper (const std::string &documentation)
 
template<class Algo , class ObjectType , class ... ParamTypes>
static void unregisterMethod (const std::string &methodName)
 
template<class Algo , class ... ParamTypes>
static void unregisterAlgorithm (AlgorithmCategories::AlgorithmCategory category)
 
template<class Algo , class ... ParamTypes>
static void unregisterWrapper ()
 
template<class Algo >
static void unregisterRaw (ext::vector< ext::pair< std::string, abstraction::TypeQualifiers::TypeQualifierSet > > parameterSpecs)
 
template<class Algo , class ObjectType , class ReturnType , class ... ParamTypes>
static void registerMethod (ReturnType(ObjectType::*callback)(ParamTypes ...), const std::string &methodName, std::array< std::string, sizeof ...(ParamTypes) > paramNames)
 
template<class Algo , class ObjectType , class ReturnType , class ... ParamTypes>
static void registerMethod (ReturnType(ObjectType::*callback)(ParamTypes ...) const, const std::string &methodName, std::array< std::string, sizeof ...(ParamTypes) > paramNames)
 
template<class Algo , class ReturnType , class ... ParamTypes>
static void registerAlgorithm (ReturnType(*callback)(ParamTypes ...), AlgorithmCategories::AlgorithmCategory category, std::array< std::string, sizeof ...(ParamTypes) > paramNames)
 
template<class Algo , class ReturnType , class ... ParamTypes>
static void registerWrapper (std::shared_ptr< abstraction::OperationAbstraction >(*callback)(ParamTypes ...), std::array< std::string, sizeof ...(ParamTypes) > paramNames)
 
template<class Algo >
static void registerRaw (std::shared_ptr< abstraction::Value >(*callback)(const std::vector< std::shared_ptr< abstraction::Value > > &), ext::pair< std::string, abstraction::TypeQualifiers::TypeQualifierSet > result, ext::vector< ext::tuple< std::string, abstraction::TypeQualifiers::TypeQualifierSet, std::string > > paramSpecs)
 
static void registerRaw (std::string algorithm, std::function< std::shared_ptr< abstraction::Value >(const std::vector< std::shared_ptr< abstraction::Value > > &) > callback, ext::pair< std::string, abstraction::TypeQualifiers::TypeQualifierSet > result, ext::vector< ext::tuple< std::string, abstraction::TypeQualifiers::TypeQualifierSet, std::string > > paramSpecs)
 
static std::shared_ptr< abstraction::OperationAbstractiongetAbstraction (const std::string &name, const ext::vector< std::string > &templateParams, const ext::vector< std::string > &paramTypes, const ext::vector< abstraction::TypeQualifiers::TypeQualifierSet > &typeQualifiers, AlgorithmCategories::AlgorithmCategory category)
 
static ext::set< ext::pair< std::string, ext::vector< std::string > > > listGroup (const std::string &group)
 
static ext::list< ext::tuple< AlgorithmFullInfo, std::optional< std::string > > > listOverloads (const std::string &algorithm, const ext::vector< std::string > &templateParams)
 
static ext::set< ext::pair< std::string, ext::vector< std::string > > > list ()
 

Member Function Documentation

◆ getAbstraction()

std::shared_ptr< abstraction::OperationAbstraction > abstraction::AlgorithmRegistry::getAbstraction ( const std::string &  name,
const ext::vector< std::string > &  templateParams,
const ext::vector< std::string > &  paramTypes,
const ext::vector< abstraction::TypeQualifiers::TypeQualifierSet > &  typeQualifiers,
AlgorithmCategories::AlgorithmCategory  category 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ list()

ext::set< ext::pair< std::string, ext::vector< std::string > > > abstraction::AlgorithmRegistry::list ( )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ listGroup()

ext::set< ext::pair< std::string, ext::vector< std::string > > > abstraction::AlgorithmRegistry::listGroup ( const std::string &  group)
static
Here is the caller graph for this function:

◆ listOverloads()

ext::list< ext::tuple< AlgorithmFullInfo, std::optional< std::string > > > abstraction::AlgorithmRegistry::listOverloads ( const std::string &  algorithm,
const ext::vector< std::string > &  templateParams 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ registerAlgorithm()

template<class Algo , class ReturnType , class ... ParamTypes>
static void abstraction::AlgorithmRegistry::registerAlgorithm ( ReturnType(*)(ParamTypes ...)  callback,
AlgorithmCategories::AlgorithmCategory  category,
std::array< std::string, sizeof ...(ParamTypes) >  paramNames 
)
inlinestatic
Here is the call graph for this function:
Here is the caller graph for this function:

◆ registerMethod() [1/2]

template<class Algo , class ObjectType , class ReturnType , class ... ParamTypes>
static void abstraction::AlgorithmRegistry::registerMethod ( ReturnType(ObjectType::*)(ParamTypes ...) const  callback,
const std::string &  methodName,
std::array< std::string, sizeof ...(ParamTypes) >  paramNames 
)
inlinestatic
Here is the call graph for this function:

◆ registerMethod() [2/2]

template<class Algo , class ObjectType , class ReturnType , class ... ParamTypes>
static void abstraction::AlgorithmRegistry::registerMethod ( ReturnType(ObjectType::*)(ParamTypes ...)  callback,
const std::string &  methodName,
std::array< std::string, sizeof ...(ParamTypes) >  paramNames 
)
inlinestatic
Here is the call graph for this function:

◆ registerRaw() [1/2]

template<class Algo >
static void abstraction::AlgorithmRegistry::registerRaw ( std::shared_ptr< abstraction::Value >(*)(const std::vector< std::shared_ptr< abstraction::Value > > &)  callback,
ext::pair< std::string, abstraction::TypeQualifiers::TypeQualifierSet result,
ext::vector< ext::tuple< std::string, abstraction::TypeQualifiers::TypeQualifierSet, std::string > >  paramSpecs 
)
inlinestatic
Here is the call graph for this function:
Here is the caller graph for this function:

◆ registerRaw() [2/2]

static void abstraction::AlgorithmRegistry::registerRaw ( std::string  algorithm,
std::function< std::shared_ptr< abstraction::Value >(const std::vector< std::shared_ptr< abstraction::Value > > &) >  callback,
ext::pair< std::string, abstraction::TypeQualifiers::TypeQualifierSet result,
ext::vector< ext::tuple< std::string, abstraction::TypeQualifiers::TypeQualifierSet, std::string > >  paramSpecs 
)
inlinestatic
Here is the call graph for this function:

◆ registerWrapper()

template<class Algo , class ReturnType , class ... ParamTypes>
static void abstraction::AlgorithmRegistry::registerWrapper ( std::shared_ptr< abstraction::OperationAbstraction >(*)(ParamTypes ...)  callback,
std::array< std::string, sizeof ...(ParamTypes) >  paramNames 
)
inlinestatic
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setDocumentationOfAlgorithm()

template<class Algo , class ... ParamTypes>
static void abstraction::AlgorithmRegistry::setDocumentationOfAlgorithm ( AlgorithmCategories::AlgorithmCategory  category,
const std::string &  documentation 
)
inlinestatic
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setDocumentationOfMethod()

template<class Algo , class ObjectType , class ... ParamTypes>
static void abstraction::AlgorithmRegistry::setDocumentationOfMethod ( const std::string &  methodName,
const std::string &  documentation 
)
inlinestatic
Here is the caller graph for this function:

◆ setDocumentationOfWrapper()

template<class Algo , class ... ParamTypes>
static void abstraction::AlgorithmRegistry::setDocumentationOfWrapper ( const std::string &  documentation)
inlinestatic
Here is the call graph for this function:
Here is the caller graph for this function:

◆ unregisterAlgorithm()

template<class Algo , class ... ParamTypes>
static void abstraction::AlgorithmRegistry::unregisterAlgorithm ( AlgorithmCategories::AlgorithmCategory  category)
inlinestatic
Here is the call graph for this function:

◆ unregisterMethod()

template<class Algo , class ObjectType , class ... ParamTypes>
static void abstraction::AlgorithmRegistry::unregisterMethod ( const std::string &  methodName)
inlinestatic

◆ unregisterRaw()

template<class Algo >
static void abstraction::AlgorithmRegistry::unregisterRaw ( ext::vector< ext::pair< std::string, abstraction::TypeQualifiers::TypeQualifierSet > >  parameterSpecs)
inlinestatic
Here is the call graph for this function:

◆ unregisterWrapper()

template<class Algo , class ... ParamTypes>
static void abstraction::AlgorithmRegistry::unregisterWrapper ( )
inlinestatic
Here is the call graph for this function:

The documentation for this class was generated from the following files: