OOPS
oops::VariableChangeFactory< MODEL > Class Template Referenceabstract

VariableChange factory. More...

#include <VariableChangeBase.h>

Inheritance diagram for oops::VariableChangeFactory< MODEL >:

Public Member Functions

virtual ~VariableChangeFactory ()=default
 

Static Public Member Functions

static VariableChangeBase< MODEL > * create (const VariableChangeParametersBase &, const Geometry_ &)
 Create and return a new variable change. More...
 
static VariableChangeBase< MODEL > * create (const eckit::Configuration &, const Geometry_ &)
 Create and return a new variable change. More...
 
static std::unique_ptr< VariableChangeParametersBasecreateParameters (const std::string &name)
 Create and return an instance of the subclass of VariableChangeParametersBase storing parameters of variable changes of the specified type. More...
 
static std::vector< std::string > getMakerNames ()
 Return the names of all variable changes that can be created by one of the registered makers. More...
 

Protected Member Functions

 VariableChangeFactory (const std::string &)
 Register a maker able to create variable changes of type name. More...
 

Private Types

typedef Geometry< MODEL > Geometry_
 

Private Member Functions

virtual VariableChangeBase< MODEL > * make (const VariableChangeParametersBase &, const Geometry_ &)=0
 
virtual std::unique_ptr< VariableChangeParametersBasemakeParameters () const =0
 

Static Private Member Functions

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

Detailed Description

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

VariableChange factory.

Definition at line 75 of file VariableChangeBase.h.

Member Typedef Documentation

◆ Geometry_

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

Definition at line 116 of file VariableChangeBase.h.

Constructor & Destructor Documentation

◆ ~VariableChangeFactory()

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

◆ VariableChangeFactory()

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

Register a maker able to create variable changes of type name.

Definition at line 190 of file VariableChangeBase.h.

Member Function Documentation

◆ create() [1/2]

template<typename MODEL >
VariableChangeBase< MODEL > * oops::VariableChangeFactory< MODEL >::create ( const eckit::Configuration &  conf,
const Geometry_ resol 
)
static

Create and return a new variable change.

Deprecated overload taking a Configuration instead of a VariableChangeParametersBase.

Definition at line 219 of file VariableChangeBase.h.

◆ create() [2/2]

template<typename MODEL >
VariableChangeBase< MODEL > * oops::VariableChangeFactory< MODEL >::create ( const VariableChangeParametersBase params,
const Geometry_ resol 
)
static

Create and return a new variable change.

The type of the variable change is determined by the variable change attribute of parameters. parameters must be an instance of the subclass of VariableChangeParametersBase associated with that variable change type, otherwise an exception will be thrown.

Definition at line 200 of file VariableChangeBase.h.

Here is the caller graph for this function:

◆ createParameters()

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

Create and return an instance of the subclass of VariableChangeParametersBase storing parameters of variable changes of the specified type.

Definition at line 229 of file VariableChangeBase.h.

◆ getMakerNames()

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

Return the names of all variable changes that can be created by one of the registered makers.

Definition at line 139 of file VariableChangeBase.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getMakers()

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

Definition at line 155 of file VariableChangeBase.h.

Here is the caller graph for this function:

◆ make()

template<typename MODEL >
virtual VariableChangeBase<MODEL>* oops::VariableChangeFactory< MODEL >::make ( const VariableChangeParametersBase ,
const Geometry_  
)
privatepure virtual

◆ makeParameters()

template<typename MODEL >
virtual std::unique_ptr<VariableChangeParametersBase> oops::VariableChangeFactory< MODEL >::makeParameters ( ) const
privatepure virtual

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