g2o
Loading...
Searching...
No Matches
g2o::OptimizationAlgorithmFactory Class Reference

create solvers based on their short name More...

#include <optimization_algorithm_factory.h>

Public Types

typedef std::list< std::shared_ptr< AbstractOptimizationAlgorithmCreator > > CreatorList

Public Member Functions

 OptimizationAlgorithmFactory (OptimizationAlgorithmFactory const &)=delete
OptimizationAlgorithmFactory & operator= (OptimizationAlgorithmFactory const &)=delete
void registerSolver (const std::shared_ptr< AbstractOptimizationAlgorithmCreator > &c)
void unregisterSolver (const std::shared_ptr< AbstractOptimizationAlgorithmCreator > &c)
OptimizationAlgorithm * construct (const std::string &tag, OptimizationAlgorithmProperty &solverProperty) const
void listSolvers (std::ostream &os) const
 list the known solvers into a stream
const CreatorList & creatorList () const
 return the underlying list of creators

Static Public Member Functions

static OptimizationAlgorithmFactory * instance ()
 return the instance
static void destroy ()
 free the instance

Protected Member Functions

 OptimizationAlgorithmFactory ()=default
CreatorList::const_iterator findSolver (const std::string &name) const
CreatorList::iterator findSolver (const std::string &name)

Protected Attributes

CreatorList _creator

Static Private Attributes

static std::unique_ptr< OptimizationAlgorithmFactory > factoryInstance

Detailed Description

create solvers based on their short name

Factory to allocate solvers based on their short name. The Factory is implemented as a singleton and the single instance can be accessed via the instance() function.

Definition at line 73 of file optimization_algorithm_factory.h.

Member Typedef Documentation

◆ CreatorList

Constructor & Destructor Documentation

◆ OptimizationAlgorithmFactory() [1/2]

g2o::OptimizationAlgorithmFactory::OptimizationAlgorithmFactory ( OptimizationAlgorithmFactory const & )
delete

◆ OptimizationAlgorithmFactory() [2/2]

g2o::OptimizationAlgorithmFactory::OptimizationAlgorithmFactory ( )
protecteddefault

Member Function Documentation

◆ construct()

OptimizationAlgorithm * g2o::OptimizationAlgorithmFactory::construct ( const std::string & tag,
OptimizationAlgorithmProperty & solverProperty ) const

construct a solver based on its name, e.g., var, fix3_2_cholmod

Definition at line 74 of file optimization_algorithm_factory.cpp.

References _creator, findSolver(), and G2O_WARN.

Referenced by MainWindow::allocateSolver(), g2o::SparseOptimizerOnline::initSolver(), main(), and operator=().

◆ creatorList()

const CreatorList & g2o::OptimizationAlgorithmFactory::creatorList ( ) const
inline

return the underlying list of creators

Definition at line 111 of file optimization_algorithm_factory.h.

References _creator.

Referenced by MainWindow::updateDisplayedSolvers().

◆ destroy()

void g2o::OptimizationAlgorithmFactory::destroy ( )
static

free the instance

Definition at line 86 of file optimization_algorithm_factory.cpp.

References factoryInstance.

◆ findSolver() [1/2]

OptimizationAlgorithmFactory::CreatorList::iterator g2o::OptimizationAlgorithmFactory::findSolver ( const std::string & name)
protected

◆ findSolver() [2/2]

OptimizationAlgorithmFactory::CreatorList::const_iterator g2o::OptimizationAlgorithmFactory::findSolver ( const std::string & name) const
protected

◆ instance()

◆ listSolvers()

void g2o::OptimizationAlgorithmFactory::listSolvers ( std::ostream & os) const

◆ operator=()

◆ registerSolver()

void g2o::OptimizationAlgorithmFactory::registerSolver ( const std::shared_ptr< AbstractOptimizationAlgorithmCreator > & c)

register a specific creator for allocating a solver

Definition at line 53 of file optimization_algorithm_factory.cpp.

References _creator, findSolver(), and G2O_WARN.

Referenced by operator=(), and g2o::RegisterOptimizationAlgorithmProxy::RegisterOptimizationAlgorithmProxy().

◆ unregisterSolver()

void g2o::OptimizationAlgorithmFactory::unregisterSolver ( const std::shared_ptr< AbstractOptimizationAlgorithmCreator > & c)

unregister a specific creator for allocating a solver

Definition at line 65 of file optimization_algorithm_factory.cpp.

References _creator, and findSolver().

Referenced by operator=().

Member Data Documentation

◆ _creator

CreatorList g2o::OptimizationAlgorithmFactory::_creator
protected

◆ factoryInstance

std::unique_ptr< OptimizationAlgorithmFactory > g2o::OptimizationAlgorithmFactory::factoryInstance
staticprivate

Definition at line 122 of file optimization_algorithm_factory.h.

Referenced by destroy(), and instance().


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