#include <Algorithm.h>
Factory to create an algorithm.
Definition at line 324 of file Algorithm.h.
|
| static algo_t | Create (std::string const &algo_name) noexcept(false) |
| static std::optional< std::vector< std::string > > | GetCreatedBanks (std::string const &algo_name) noexcept(false) |
| static std::optional< std::vector< std::string > > | GetCreatorAlgorithms (std::string const &bank_name) noexcept |
| static bool | Register (std::string const &algo_name, algo_creator_t creator, std::vector< std::string > const new_banks={}) noexcept |
◆ algo_creator_t
◆ Create()
| algo_t iguana::AlgorithmFactory::Create |
( |
std::string const & | algo_name | ) |
|
|
static |
Create an algorithm. Throws an exception if the algorithm cannot be created
- Parameters
-
- Returns
- the algorithm instance
◆ GetCreatedBanks()
| std::optional< std::vector< std::string > > iguana::AlgorithmFactory::GetCreatedBanks |
( |
std::string const & | algo_name | ) |
|
|
static |
Get list of banks which are created by a particular creator-type algorithm
- Parameters
-
| algo_name | the algorithm name |
- Returns
- the list of banks which are created by the algorithm, if any
◆ GetCreatorAlgorithms()
| std::optional< std::vector< std::string > > iguana::AlgorithmFactory::GetCreatorAlgorithms |
( |
std::string const & | bank_name | ) |
|
|
staticnoexcept |
Get list of creator-type algorithms which create a particular bank
- Parameters
-
- Returns
- the list of algorithms which create the bank, if any
◆ Register()
| bool iguana::AlgorithmFactory::Register |
( |
std::string const & | algo_name, |
|
|
algo_creator_t | creator, |
|
|
std::vector< std::string > const | new_banks = {} ) |
|
staticnoexcept |
Register an algorithm with a unique name. Algorithms register themselves by calling this function.
- Parameters
-
| algo_name | the name of the algorithm (not equivalent to Object::m_name) |
| creator | the creator function |
| new_banks | if this algorithm creates new banks, list them here |
- Returns
- true if the algorithm has not yet been registered
The documentation for this class was generated from the following file:
- /__w/iguana/iguana/iguana_src/src/iguana/algorithms/Algorithm.h