IODA Bundle
oops::LinearModelFactory< MODEL > Class Template Referenceabstract

Tangent linear model factory. More...

#include <LinearModelBase.h>

Inheritance diagram for oops::LinearModelFactory< MODEL >:
[legend]

Public Member Functions

virtual ~LinearModelFactory ()=default
 

Static Public Member Functions

static LinearModelBase< MODEL > * create (const Geometry_ &, const LinearModelParametersBase &parameters)
 Create and return a new tangent 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 tangent linear models of the specified type. More...
 
static std::vector< std::string > getMakerNames ()
 Return the names of all tangent 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 tangent 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 >

Tangent linear model factory.

Definition at line 162 of file LinearModelBase.h.

Member Typedef Documentation

◆ Geometry_

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

Definition at line 163 of file 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 tangent linear models of type name.

Definition at line 230 of file 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 tangent linear model.

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

Definition at line 240 of file 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 tangent linear models of the specified type.

Definition at line 263 of file LinearModelBase.h.

◆ getMakerNames()

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

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

Definition at line 180 of file 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 195 of file 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: