nidas
v1.2-1520
|
#include <VariableConverter.h>
Public Member Functions | |
VariableConverter () | |
VariableConverter (const VariableConverter &x) | |
Copy constructor. More... | |
VariableConverter & | operator= (const VariableConverter &x) |
Assignment. More... | |
virtual | ~VariableConverter () |
virtual VariableConverter * | clone () 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. More... | |
void | setCalFileHandler (CalFileHandler *) |
Set the instance of CalFileHandler which will be called and given first option to handle new CalFile records. More... | |
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 Variable * | getVariable () const |
virtual void | reset ()=0 |
Reset the converter to invalid or default settings, such as after an error occurs parsing a CalFile. More... | |
const DSMSensor * | getDSMSensor () const |
const DSMConfig * | getDSMConfig () const |
virtual std::string | toString () const =0 |
Generate a string description of this VariableConverter. More... | |
virtual void | fromString (const std::string &) throw (nidas::util::InvalidParameterException) |
void | addParameter (Parameter *val) |
Add a parameter to this VariableConverter. More... | |
const std::list< const Parameter * > & | getParameters () const |
Get list of parameters. More... | |
const Parameter * | getParameter (const std::string &name) const |
Fetch a parameter by name. More... | |
void | fromDOMElement (const xercesc::DOMElement *) throw (nidas::util::InvalidParameterException) |
Initialize myself from a xercesc::DOMElement. More... | |
void | setCalFile (CalFile *) |
CalFile * | getCalFile () |
const CalFile * | getCalFile () const |
virtual xercesc::DOMElement * | toDOMParent (xercesc::DOMElement *parent, bool complete) const throw (xercesc::DOMException) |
Create a DOMElement and append it to the parent. More... | |
virtual xercesc::DOMElement * | toDOMElement (xercesc::DOMElement *node, bool complete) const throw (xercesc::DOMException) |
Add my content into a DOMElement. More... | |
Static Public Member Functions | |
static VariableConverter * | createVariableConverter (XDOMElement &child) |
static VariableConverter * | createFromString (const std::string &) throw (nidas::util::InvalidParameterException) |
static const XMLCh * | getNamespaceURI () |
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. More... | |
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. More... | |
std::list< const Parameter * > | _constParameters |
List of const pointers to Parameters for providing via getParameters(). More... | |
const Variable * | _variable |
VariableConverter::VariableConverter | ( | ) |
VariableConverter::VariableConverter | ( | const VariableConverter & | x | ) |
Copy constructor.
References _calFile, addParameter(), nidas::core::Parameter::clone(), and getParameters().
|
virtual |
References _calFile, and _constParameters.
|
protected |
References _calFile, nidas::core::CalFile::getCurrentFileName(), reset(), and WLOG.
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::Parameter::getName().
Referenced by operator=(), and VariableConverter().
|
pure virtual |
Implemented in nidas::core::Polynomial, nidas::core::Linear, nidas::dynld::isff::RebsLinear, and nidas::dynld::isff::CS_Krypton.
Referenced by nidas::core::Variable::operator=(), and nidas::core::Variable::Variable().
|
pure virtual |
|
static |
References fromString().
|
static |
|
virtual |
Initialize myself from a xercesc::DOMElement.
Implements nidas::core::DOMable.
Reimplemented in nidas::core::Polynomial, nidas::core::Linear, and nidas::dynld::isff::CS_Krypton.
References nidas::core::Parameter::createParameter(), nidas::core::CalFile::fromDOMElement(), nidas::core::XDOMElement::getNodeName(), and nidas::core::CalFile::setDSMSensor().
Referenced by nidas::dynld::isff::CS_Krypton::fromDOMElement(), nidas::core::Linear::fromDOMElement(), nidas::core::Polynomial::fromDOMElement(), and nidas::core::Variable::fromDOMElement().
|
inlinevirtual |
Reimplemented in nidas::core::Polynomial, nidas::core::Linear, and nidas::dynld::isff::CS_Krypton.
Referenced by createFromString().
|
inline |
References _calFile.
Referenced by nidas::dynld::raf::SyncRecordSource::createHeader(), nidas::core::SampleTag::fromDOMElement(), and PConfig::showCalFiles().
const DSMConfig * VariableConverter::getDSMConfig | ( | ) | const |
References nidas::core::DSMSensor::getDSMConfig(), and getDSMSensor().
const DSMSensor * VariableConverter::getDSMSensor | ( | ) | const |
References nidas::core::SampleTag::getDSMSensor(), nidas::core::Variable::getSampleTag(), and getVariable().
Referenced by getDSMConfig().
|
inlinestaticinherited |
References nidas::core::DOMable::namespaceURI.
Referenced by nidas::dynld::UDPSampleOutput::getProjectDOM(), nidas::core::Dataset::toDOMElement(), nidas::core::ProjectConfig::toDOMElement(), nidas::core::Dataset::toDOMParent(), nidas::core::ProjectConfig::toDOMParent(), nidas::core::Datasets::toDOMParent(), nidas::core::ProjectConfigs::toDOMParent(), nidas::core::DSMConfig::toDOMParent(), nidas::core::Project::toDOMParent(), nidas::core::Site::toDOMParent(), nidas::core::SampleTag::toDOMParent(), nidas::core::ServerSocket::toDOMParent(), nidas::core::Variable::toDOMParent(), nidas::core::DSMSensor::toDOMParent(), nidas::core::Datasets::writeXML(), and nidas::core::ProjectConfigs::writeXML().
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.
|
inline |
Get list of parameters.
References _constParameters.
Referenced by operator=(), and VariableConverter().
|
inlinevirtual |
|
inline |
References _variable.
Referenced by getDSMSensor().
VariableConverter & VariableConverter::operator= | ( | const VariableConverter & | x | ) |
Assignment.
References _calFile, _handler, _units, _variable, addParameter(), nidas::core::Parameter::clone(), and getParameters().
|
protectedpure virtual |
Parse the fields in the current CalFile record for the particular settings and coefficients needed by this converter.
Implemented in nidas::core::Polynomial, nidas::core::Linear, and nidas::dynld::isff::CS_Krypton.
|
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::util::Exception::what().
Referenced by nidas::core::Linear::convert(), nidas::core::Polynomial::convert(), nidas::dynld::isff::NCAR_TRH::convertVariable(), and nidas::dynld::raf::SyncRecordSource::preLoadCalibrations().
|
pure virtual |
Reset the converter to invalid or default settings, such as after an error occurs parsing a CalFile.
Implemented in nidas::core::Polynomial, nidas::core::Linear, and nidas::dynld::isff::CS_Krypton.
Referenced by abortCalFile().
void VariableConverter::setCalFile | ( | CalFile * | val | ) |
References _calFile.
Referenced by nidas::dynld::raf::SyncRecordReader::scanHeader().
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.
Referenced by nidas::dynld::isff::NCAR_TRH::validate().
|
inline |
References _units.
Referenced by nidas::core::Variable::fromDOMElement(), and nidas::dynld::raf::SyncRecordReader::scanHeader().
|
inline |
References _variable.
Referenced by nidas::core::Variable::fromDOMElement().
|
virtualinherited |
Add my content into a DOMElement.
Reimplemented in nidas::core::DSMSensor, nidas::core::Variable, nidas::core::ServerSocket, nidas::core::SampleTag, nidas::core::Site, nidas::core::Project, and nidas::core::DSMConfig.
Referenced by nidas::core::ServerSocket::toDOMParent().
|
virtualinherited |
Create a DOMElement and append it to the parent.
Reimplemented in nidas::core::DSMSensor, nidas::core::Variable, nidas::core::ServerSocket, nidas::core::SampleTag, nidas::core::Site, nidas::core::Project, and nidas::core::DSMConfig.
|
pure virtual |
Generate a string description of this VariableConverter.
May be used in meta-data, for example Netcdf comment.
Implemented in nidas::core::Polynomial, nidas::core::Linear, and nidas::dynld::isff::CS_Krypton.
|
protected |
|
private |
List of const pointers to Parameters for providing via getParameters().
Referenced by addParameter(), getParameters(), and ~VariableConverter().
|
protected |
|
private |
Map of parameters by name.
Referenced by addParameter(), and getParameter().
|
private |
Referenced by getUnits(), operator=(), and setUnits().
|
private |
Referenced by getVariable(), operator=(), and setVariable().