nidas v1.2.3
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | Static Private Attributes | List of all members
nidas::core::VariableConverter Class Referenceabstract

#include <VariableConverter.h>

Inheritance diagram for nidas::core::VariableConverter:
Inheritance graph
[legend]

Public Member Functions

 VariableConverter ()
 
 VariableConverter (const VariableConverter &x)
 Copy constructor.
 
VariableConverteroperator= (const VariableConverter &x)
 Assignment.
 
virtual ~VariableConverter ()
 
virtual VariableConverterclone () const =0
 
virtual void readCalFile (dsm_time_t) throw ()
 Before a VariableConverter can be used for a conversion, the converter's CalFile, if it exists, needs to be advanced to the right record for the current sample time.
 
void setCalFileHandler (CalFileHandler *)
 Set the instance of CalFileHandler which will be called and given first option to handle new CalFile records.
 
virtual double convert (dsm_time_t, double v)=0
 
void setUnits (const std::string &val)
 
virtual const std::string & getUnits () const
 
void setVariable (const Variable *val)
 
const VariablegetVariable () const
 
virtual void reset ()=0
 Reset the converter to invalid or default settings, such as after an error occurs parsing a CalFile.
 
const DSMSensorgetDSMSensor () const
 
const DSMConfiggetDSMConfig () const
 
virtual std::string toString () const =0
 Generate a string description of this VariableConverter.
 
virtual void fromString (const std::string &)
 
void addParameter (Parameter *val)
 Add a parameter to this VariableConverter.
 
const std::list< const Parameter * > & getParameters () const
 Get list of parameters.
 
const ParametergetParameter (const std::string &name) const
 Fetch a parameter by name.
 
void fromDOMElement (const xercesc::DOMElement *)
 
void setCalFile (CalFile *)
 
CalFilegetCalFile ()
 
const CalFilegetCalFile () const
 
virtual xercesc::DOMElement * toDOMParent (xercesc::DOMElement *parent, bool complete) const
 Create a DOMElement and append it to the parent.
 
virtual xercesc::DOMElement * toDOMElement (xercesc::DOMElement *node, bool complete) const
 Add my content into a DOMElement.
 

Static Public Member Functions

static VariableConvertercreateVariableConverter (XDOMElement &child)
 
static VariableConvertercreateFromString (const std::string &)
 
static const XMLChgetNamespaceURI ()
 

Protected Member Functions

virtual void parseFields (CalFile *cf)=0
 Parse the fields in the current CalFile record for the particular settings and coefficients needed by this converter.
 
void abortCalFile (const std::string &what)
 

Protected Attributes

CalFile_calFile
 
CalFileHandler_handler
 

Private Attributes

std::string _units
 
std::map< std::string, Parameter * > _parameters
 Map of parameters by name.
 
std::list< const Parameter * > _constParameters
 List of const pointers to Parameters for providing via getParameters().
 
const Variable_variable
 

Static Private Attributes

static XMLChnamespaceURI = 0
 

Constructor & Destructor Documentation

◆ VariableConverter() [1/2]

VariableConverter::VariableConverter ( )

◆ VariableConverter() [2/2]

VariableConverter::VariableConverter ( const VariableConverter & x)

◆ ~VariableConverter()

VariableConverter::~VariableConverter ( )
virtual

Member Function Documentation

◆ abortCalFile()

void VariableConverter::abortCalFile ( const std::string & what)
protected

◆ addParameter()

void VariableConverter::addParameter ( Parameter * val)

Add a parameter to this VariableConverter.

VariableConverter will then own the pointer and will delete it in its destructor. If a Parameter exists with the same name, it will be replaced with the new Parameter.

References _constParameters, _parameters, and nidas::core::getSample().

Referenced by fromDOMElement(), operator=(), and VariableConverter().

◆ clone()

virtual VariableConverter * nidas::core::VariableConverter::clone ( ) const
pure virtual

◆ convert()

virtual double nidas::core::VariableConverter::convert ( dsm_time_t ,
double v )
pure virtual

◆ createFromString()

VariableConverter * VariableConverter::createFromString ( const std::string & str)
static

◆ createVariableConverter()

VariableConverter * VariableConverter::createVariableConverter ( XDOMElement & child)
static

◆ fromDOMElement()

void VariableConverter::fromDOMElement ( const xercesc::DOMElement * node)
virtual

◆ fromString()

virtual void nidas::core::VariableConverter::fromString ( const std::string & )
inlinevirtual

◆ getCalFile() [1/2]

CalFile * nidas::core::VariableConverter::getCalFile ( )
inline

◆ getCalFile() [2/2]

const CalFile * nidas::core::VariableConverter::getCalFile ( ) const
inline

References _calFile.

◆ getDSMConfig()

const DSMConfig * VariableConverter::getDSMConfig ( ) const

◆ getDSMSensor()

const DSMSensor * VariableConverter::getDSMSensor ( ) const

◆ getNamespaceURI()

static const XMLCh * nidas::core::DOMable::getNamespaceURI ( )
inlinestaticinherited

◆ getParameter()

const Parameter * VariableConverter::getParameter ( const std::string & name) const

Fetch a parameter by name.

Returns a NULL pointer if no such parameter exists.

References _parameters.

Referenced by nidas::dynld::isff::CS_Krypton::fromDOMElement().

◆ getParameters()

const std::list< const Parameter * > & nidas::core::VariableConverter::getParameters ( ) const
inline

Get list of parameters.

References _constParameters.

◆ getUnits()

virtual const std::string & nidas::core::VariableConverter::getUnits ( ) const
inlinevirtual

◆ getVariable()

const Variable * nidas::core::VariableConverter::getVariable ( ) const
inline

References _variable.

Referenced by getDSMSensor().

◆ operator=()

VariableConverter & VariableConverter::operator= ( const VariableConverter & x)

◆ parseFields()

virtual void nidas::core::VariableConverter::parseFields ( CalFile * cf)
protectedpure virtual

Parse the fields in the current CalFile record for the particular settings and coefficients needed by this converter.

Implemented in nidas::core::Linear, nidas::core::Polynomial, and nidas::dynld::isff::CS_Krypton.

◆ readCalFile()

void VariableConverter::readCalFile ( dsm_time_t t)
throw ( )
virtual

Before a VariableConverter can be used for a conversion, the converter's CalFile, if it exists, needs to be advanced to the right record for the current sample time.

As records are read, this method calls parseFields() so the VariableConverter subclass can extract the particular information it needs from the CalFile fields, typically coefficients.

For sensors which need to extend the kind of conversions which can be specified by a CalFile, there is a callback function available. See setCalFileHandler().

References DLOG, nidas::util::UTime::format(), and nidas::core::getSample().

Referenced by nidas::core::Linear::convert(), nidas::core::Polynomial::convert(), nidas::dynld::isff::CS_Krypton::convert(), nidas::dynld::isff::RebsLinear::convert(), nidas::dynld::isff::NCAR_TRH::convertVariable(), and nidas::dynld::raf::SyncRecordSource::preLoadCalibrations().

◆ reset()

virtual void nidas::core::VariableConverter::reset ( )
pure virtual

Reset the converter to invalid or default settings, such as after an error occurs parsing a CalFile.

Implemented in nidas::core::Linear, nidas::core::Polynomial, and nidas::dynld::isff::CS_Krypton.

Referenced by abortCalFile().

◆ setCalFile()

void VariableConverter::setCalFile ( CalFile * val)

References _calFile, and nidas::core::getSample().

Referenced by fromDOMElement().

◆ setCalFileHandler()

void VariableConverter::setCalFileHandler ( CalFileHandler * cfh)

Set the instance of CalFileHandler which will be called and given first option to handle new CalFile records.

Pass null to disable the callbacks.

References _handler, and nidas::core::getSample().

◆ setUnits()

void nidas::core::VariableConverter::setUnits ( const std::string & val)
inline

◆ setVariable()

void nidas::core::VariableConverter::setVariable ( const Variable * val)
inline

◆ toDOMElement()

xercesc::DOMElement * DOMable::toDOMElement ( xercesc::DOMElement * node,
bool complete ) const
virtualinherited

◆ toDOMParent()

xercesc::DOMElement * DOMable::toDOMParent ( xercesc::DOMElement * parent,
bool complete ) const
virtualinherited

Create a DOMElement and append it to the parent.

Exceptions
xercesc::DOMException

Reimplemented in nidas::core::DSMConfig, nidas::core::DSMSensor, nidas::core::Project, nidas::core::SampleTag, nidas::core::Site, nidas::core::ServerSocket, and nidas::core::Variable.

◆ toString()

virtual std::string nidas::core::VariableConverter::toString ( ) const
pure virtual

Generate a string description of this VariableConverter.

May be used in meta-data, for example Netcdf comment.

Implemented in nidas::dynld::isff::CS_Krypton, nidas::core::Linear, nidas::core::Polynomial, and nidas::dynld::isff::RebsLinear.

Referenced by nidas::dynld::isff::Wind2D::validate().

Member Data Documentation

◆ _calFile

CalFile* nidas::core::VariableConverter::_calFile
protected

◆ _constParameters

std::list<const Parameter*> nidas::core::VariableConverter::_constParameters
private

List of const pointers to Parameters for providing via getParameters().

Referenced by addParameter(), getParameters(), and ~VariableConverter().

◆ _handler

CalFileHandler* nidas::core::VariableConverter::_handler
protected

Referenced by operator=(), and setCalFileHandler().

◆ _parameters

std::map<std::string,Parameter*> nidas::core::VariableConverter::_parameters
private

Map of parameters by name.

Referenced by addParameter(), and getParameter().

◆ _units

std::string nidas::core::VariableConverter::_units
private

Referenced by getUnits(), operator=(), and setUnits().

◆ _variable

const Variable* nidas::core::VariableConverter::_variable
private

Referenced by getVariable(), operator=(), and setVariable().

◆ namespaceURI

XMLCh * DOMable::namespaceURI = 0
staticprivateinherited

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