icedb
version 0.5.1
Snow particle scattering database API
|
Base conversion class. More...
#include <units.hpp>
Public Member Functions | |
virtual | ~converter () |
virtual double | convert (double inVal) const |
bool | isValid () const |
Is this conversion valid? More... | |
converter (const std::string &inUnits, const std::string &outUnits) | |
Static Public Member Functions | |
static bool | canConvert (const std::string &inUnits, const std::string &outUnits) |
Check if two units can be interconverted. More... | |
static std::shared_ptr< const converter > | generate (const std::string &inUnits, const std::string &outUnits) |
Protected Member Functions | |
converter () | |
Static Protected Member Functions | |
static Unithandler_p | getConverter (const std::string &inUnits, const std::string &outUnits) |
Protected Attributes | |
Unithandler_p | h |
Friends | |
struct | implementations::spectralUnits |
struct | implementations::simpleUnits |
struct | implementations::Unithandler |
Base conversion class.
Class is virtual. May be overridden with classes that do formulaic operations, such as converters to density in ppmv.
Now, with the appropriate DLL loaded, the udunits system will be used for most conversions. The derived classes still have a bit of code for when udunits is not installed.
icedb::units::converter::converter | ( | const std::string & | inUnits, |
const std::string & | outUnits | ||
) |
Definition at line 23 of file units.cpp.
References getConverter(), and h.
|
protected |
Definition at line 11 of file units.cpp.
References icedb::units::implementations::_init().
Referenced by generate().
|
static |
Check if two units can be interconverted.
Definition at line 28 of file units.cpp.
References icedb::units::implementations::_init(), icedb::registry::options::generate(), and icedb::units::implementations::getHooks().
Referenced by icedb::units::implementations::spectralUnits::canConvert(), and icedb::units::implementations::spectralUnits::constructConverter().
|
virtual |
Convert to the output units
If | the conversion is invalid |
Definition at line 52 of file units.cpp.
References h, ICEDB_throw, isValid(), icedb::error::xBadInput, and icedb::error::xNullPointer.
Referenced by icedb::refract::implementations::mIceWarren().
|
static |
Create a converter to convert between two types of units.
Definition at line 13 of file units.cpp.
References icedb::units::implementations::_queryBackend(), icedb::units::implementations::_registerBackend(), and converter().
Referenced by icedb::refract::prepRefract().
|
staticprotected |
Get a converter for these units.
Definition at line 69 of file unitsPlugins.cpp.
References icedb::units::implementations::_init(), icedb::registry::options::generate(), icedb::units::implementations::getHooks(), ICEDB_log, and icedb::logging::ICEDB_LOG_DEBUG_1.
Referenced by icedb::units::implementations::spectralUnits::constructConverter(), and converter().
bool icedb::units::converter::isValid | ( | ) | const |
|
friend |
|
friend |
|
friend |
|
protected |
Definition at line 48 of file units.hpp.
Referenced by icedb::units::conv_spec::conv_spec(), convert(), converter(), and isValid().