Define a solver factory that instanciate the plug-ins. More...
#include <roboptim/core/solver-factory.hh>
Public Types | |
| typedef T | solver_t |
| Solver type. | |
| typedef T::problem_t | problem_t |
| Problem type. | |
Public Member Functions | |
| SolverFactory (std::string solver, const problem_t &problem) | |
| Instantiate a factory and load the plug-in. | |
| ~SolverFactory () | |
| Unload the plug-in and free the instantiated solver. | |
| solver_t & | operator() () |
| Retrieve a reference on the solver. | |
Define a solver factory that instanciate the plug-ins.
The solver factory has to be used to instantiate solvers which are packaged as roboptim-core plug-ins.
This class uses libltdl to handle plug-ins. This lightweight library is provided with GNU Libtool and wraps OS specific behavior into a uniform interface.
| T | solver type |
| typedef T::problem_t roboptim::SolverFactory< T >::problem_t |
Problem type.
| typedef T roboptim::SolverFactory< T >::solver_t |
Solver type.
| roboptim::SolverFactory< T >::SolverFactory | ( | std::string | solver, |
| const problem_t & | problem | ||
| ) | [explicit] |
Instantiate a factory and load the plug-in.
The constructor search for the plug-in and load it. If the wanted plug-in can not be found, an exception is thrown.
| solver | solver name (for instance ``cfsqp'') |
| problem | problem that will be solved |
| std::runtime_error |
References roboptim::demangle(), getSizeOfProblem(), and getTypeIdOfConstraintsList().
| roboptim::SolverFactory< T >::~SolverFactory | ( | ) |
Unload the plug-in and free the instantiated solver.
| SolverFactory< T >::solver_t & roboptim::SolverFactory< T >::operator() | ( | ) |
Retrieve a reference on the solver.