LAMA
lama::SolverFactory Class Reference

registry for Solver provides interface for getting a new CG solver More...

#include <SolverFactory.hpp>

Public Types

typedef qi::symbols< char,
SolverCreator::RuleType
TypeToCreatorMap
typedef qi::symbols< char,
SolverPtr
SolverInstanceMap

Public Member Functions

virtual ~SolverFactory ()
void addSolverCreator (const std::string &type, SolverCreator::RuleType &SolverCreator)
 Add/register a SolverCreator to the Factory.
const TypeToCreatorMapgetCreatorRuleSymbols ()
bool hasSolver (const std::string &solverName) const
 Checks if a solver instance is registered.
SolverPtr getSolver (const std::string &solverName)
 Returns a registered solver instance.
const SolverInstanceMapgetSolverInstanceMap ()
 Returns the solver instance map.
void addSolver (Solver *solver)
 Add/register a solver instance with a given name/id to the Factory.

Static Public Member Functions

static SolverFactorygetFactory ()
 Returns the static factory object to access the factory.
static void release ()
 Releases all registered solvers and solver creators.

Private Member Functions

 SolverFactory ()
 Default constructor of Solver Factory Create and manage a collection of solvers.
 LAMA_LOG_DECL_STATIC_LOGGER (logger)

Private Attributes

TypeToCreatorMap mCreatorRuleMap
SolverInstanceMap mSolverInstanceMap

Detailed Description

registry for Solver provides interface for getting a new CG solver


Member Typedef Documentation


Constructor & Destructor Documentation

Default constructor of Solver Factory Create and manage a collection of solvers.

Referenced by getFactory().


Member Function Documentation

Add/register a solver instance with a given name/id to the Factory.

Parameters:
[in]solverThe solver instance which will be added to the registry/map

References hasSolver(), LAMA_ASSERT, and mSolverInstanceMap.

Referenced by lama::SolverConfigGrammar::SolverConfigGrammar().

SolverPtr lama::SolverFactory::getSolver ( const std::string &  solverName)

Returns a registered solver instance.

Parameters:
[in]solverNameThe name/id of the registered solver
Returns:
Returns the solver if the solver is available/registered

References hasSolver(), LAMA_THROWEXCEPTION, and mSolverInstanceMap.

Referenced by lama::SolverCreator::SolverCreator().

Returns the solver instance map.

Returns:
Returns the solver instance map

References mSolverInstanceMap.

bool lama::SolverFactory::hasSolver ( const std::string &  solverName) const

Checks if a solver instance is registered.

Parameters:
[in]solverNameThe name/id of the registered solver
Returns:
Returns true if the solver is available/registered

References mSolverInstanceMap.

Referenced by addSolver(), and getSolver().

void lama::SolverFactory::release ( ) [static]

Releases all registered solvers and solver creators.

References getFactory(), mCreatorRuleMap, and mSolverInstanceMap.


Field Documentation


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