Loading [MathJax]/extensions/tex2jax.js
OOPS
All Classes Namespaces Files Functions Variables Typedefs Macros Pages
oops::LinearModelFactory< MODEL > Class Template Referenceabstract

LinearModel factory. More...

#include <LinearModelBase.h>

Inheritance diagram for oops::LinearModelFactory< MODEL >:

Public Member Functions

virtual ~LinearModelFactory ()=default
 

Static Public Member Functions

static LinearModelBase< MODEL > * create (const Geometry_ &, const LinearModelParametersBase &parameters)
 Create and return a new linear model. More...
 
static std::unique_ptr< LinearModelParametersBasecreateParameters (const std::string &name)
 Create and return an instance of the subclass of LinearModelParametersBase storing parameters of linear models of the specified type. More...
 
static std::vector< std::string > getMakerNames ()
 Return the names of all linear models that can be created by one of the registered makers. More...
 

Protected Member Functions

 LinearModelFactory (const std::string &name)
 Register a maker able to create linear models of type name. More...
 

Private Types

typedef Geometry< MODEL > Geometry_
 

Private Member Functions

virtual LinearModelBase< MODEL > * make (const Geometry_ &, const LinearModelParametersBase &)=0
 
virtual std::unique_ptr< LinearModelParametersBasemakeParameters () const =0
 

Static Private Member Functions

static std::map< std::string, LinearModelFactory< MODEL > * > & getMakers ()
 

Detailed Description

template<typename MODEL>
class oops::LinearModelFactory< MODEL >

LinearModel factory.

Definition at line 161 of file generic/LinearModelBase.h.

Member Typedef Documentation

◆ Geometry_

template<typename MODEL >
typedef Geometry<MODEL> oops::LinearModelFactory< MODEL >::Geometry_
private

Definition at line 162 of file generic/LinearModelBase.h.

Constructor & Destructor Documentation

◆ ~LinearModelFactory()

template<typename MODEL >
virtual oops::LinearModelFactory< MODEL >::~LinearModelFactory ( )
virtualdefault

◆ LinearModelFactory()

template<typename MODEL >
oops::LinearModelFactory< MODEL >::LinearModelFactory ( const std::string &  name)
explicitprotected

Register a maker able to create linear models of type name.

Definition at line 232 of file generic/LinearModelBase.h.

Member Function Documentation

◆ create()

template<typename MODEL >
LinearModelBase< MODEL > * oops::LinearModelFactory< MODEL >::create ( const Geometry_ geom,
const LinearModelParametersBase parameters 
)
static

Create and return a new linear model.

The linear model's type is determined by the name attribute of parameters. parameters must be an instance of the subclass of LinearModelParametersBase associated with that linear model type, otherwise an exception will be thrown.

Definition at line 242 of file generic/LinearModelBase.h.

◆ createParameters()

template<typename MODEL >
std::unique_ptr< LinearModelParametersBase > oops::LinearModelFactory< MODEL >::createParameters ( const std::string &  name)
static

Create and return an instance of the subclass of LinearModelParametersBase storing parameters of linear models of the specified type.

Definition at line 259 of file generic/LinearModelBase.h.

◆ getMakerNames()

template<typename MODEL >
static std::vector<std::string> oops::LinearModelFactory< MODEL >::getMakerNames ( )
inlinestatic

Return the names of all linear models that can be created by one of the registered makers.

Definition at line 179 of file generic/LinearModelBase.h.

Here is the call graph for this function:

◆ getMakers()

template<typename MODEL >
static std::map< std::string, LinearModelFactory<MODEL> * >& oops::LinearModelFactory< MODEL >::getMakers ( )
inlinestaticprivate

Definition at line 194 of file generic/LinearModelBase.h.

Here is the caller graph for this function:

◆ make()

template<typename MODEL >
virtual LinearModelBase<MODEL>* oops::LinearModelFactory< MODEL >::make ( const Geometry_ ,
const LinearModelParametersBase  
)
privatepure virtual

◆ makeParameters()

template<typename MODEL >
virtual std::unique_ptr<LinearModelParametersBase> oops::LinearModelFactory< MODEL >::makeParameters ( ) const
privatepure virtual

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