UFO
ufo::LinearObsOperatorFactory Class Referenceabstract

Linear obs operator factory. More...

#include <LinearObsOperatorBase.h>

Inheritance diagram for ufo::LinearObsOperatorFactory:

Public Member Functions

virtual ~LinearObsOperatorFactory ()=default
 

Static Public Member Functions

static LinearObsOperatorBasecreate (const ioda::ObsSpace &, const ObsOperatorParametersBase &)
 Create and return a new linear observation operator. More...
 
static std::unique_ptr< ObsOperatorParametersBasecreateParameters (const std::string &name)
 Create and return an instance of the subclass of ObsOperatorParametersBase storing parameters of linear observation operators of the specified type. More...
 
static std::vector< std::string > getMakerNames ()
 Return the names of all operators that can be created by one of the registered makers. More...
 

Protected Member Functions

 LinearObsOperatorFactory (const std::string &name)
 Register a maker able to create linear observation operators of type name. More...
 

Private Member Functions

virtual LinearObsOperatorBasemake (const ioda::ObsSpace &, const ObsOperatorParametersBase &)=0
 
virtual std::unique_ptr< ObsOperatorParametersBasemakeParameters () const =0
 

Static Private Member Functions

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

Detailed Description

Linear obs operator factory.

Definition at line 106 of file LinearObsOperatorBase.h.

Constructor & Destructor Documentation

◆ ~LinearObsOperatorFactory()

virtual ufo::LinearObsOperatorFactory::~LinearObsOperatorFactory ( )
virtualdefault

◆ LinearObsOperatorFactory()

ufo::LinearObsOperatorFactory::LinearObsOperatorFactory ( const std::string &  name)
explicitprotected

Register a maker able to create linear observation operators of type name.

Definition at line 26 of file LinearObsOperatorBase.cc.

Here is the call graph for this function:

Member Function Documentation

◆ create()

LinearObsOperatorBase * ufo::LinearObsOperatorFactory::create ( const ioda::ObsSpace &  odb,
const ObsOperatorParametersBase params 
)
static

Create and return a new linear observation operator.

The type of the operator is determined by the name attribute of params. params must be an instance of the subclass of ObsOperatorParametersBase associated with that operator, otherwise an exception will be thrown.

Definition at line 37 of file LinearObsOperatorBase.cc.

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

◆ createParameters()

std::unique_ptr< ObsOperatorParametersBase > ufo::LinearObsOperatorFactory::createParameters ( const std::string &  name)
static

Create and return an instance of the subclass of ObsOperatorParametersBase storing parameters of linear observation operators of the specified type.

Definition at line 56 of file LinearObsOperatorBase.cc.

Here is the call graph for this function:

◆ getMakerNames()

static std::vector<std::string> ufo::LinearObsOperatorFactory::getMakerNames ( )
inlinestatic

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

Definition at line 121 of file LinearObsOperatorBase.h.

Here is the call graph for this function:

◆ getMakers()

static std::map< std::string, LinearObsOperatorFactory * >& ufo::LinearObsOperatorFactory::getMakers ( )
inlinestaticprivate

Definition at line 137 of file LinearObsOperatorBase.h.

Here is the caller graph for this function:

◆ make()

virtual LinearObsOperatorBase* ufo::LinearObsOperatorFactory::make ( const ioda::ObsSpace &  ,
const ObsOperatorParametersBase  
)
privatepure virtual

◆ makeParameters()

virtual std::unique_ptr<ObsOperatorParametersBase> ufo::LinearObsOperatorFactory::makeParameters ( ) const
privatepure virtual

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