#include <UnitConversionEngine.h>

Public Types

typedef std::vector< CQuantityTypeDescriptor * > QuantityTypeList
 
typedef std::vector< CUnitDescriptor * > UnitList
 
typedef std::vector< CPrefixDescriptor * > PrefixList
 
typedef std::vector< CQuantityConversionDescriptor * > QuantityConversionList
 
typedef std::unordered_map< char, unsigned int > PrefixMap
 
typedef std::unordered_map< std::string, unsigned int > UnitSymbolMap
 
typedef std::unordered_map< std::string, unsigned int > QuantityNameMap
 
typedef std::unordered_map< CQuantityConversionKey, unsigned int > QuantityConversionMap
 
typedef std::unordered_map< CUnitDimension, unsigned int > DimensionToQuantityMap
 

Public Member Functions

void SetWorkingDirectory (const std::string &wrkDir)
 
const std::string & GetWorkingDirectory () const
 
double ConvertValue (const double &value, const CCompoundUnit &fromUnit, const CCompoundUnit &toUnit) const
 
double ConvertValue (const double &value, const std::string &fromUnit, const std::string &toUnit) const
 
double QuickConvertValue (const double &value, const CCompoundUnit &fromUnit, const CCompoundUnit &toUnit) const
 
double QuickConvertValue (const double &value, const std::string &fromUnit, const std::string &toUnit) const
 
double ConvertValueInterval (const double &value, const CCompoundUnit &fromUnit, const CCompoundUnit &toUnit) const
 
double ConvertValueInterval (const double &value, const std::string &fromUnit, const std::string &toUnit) const
 
double ConvertQuantityType (const double &value, const CCompoundUnit &fromUnit, const CCompoundUnit &toUnit) const
 
int GetUnitID (const std::string &unitSym) const
 
int GetQuantityTypeID (const std::string &qtName) const
 
int GetQuantityTypeID (const CUnitDimension &ud) const
 
int GetQuantityConversionID (const CUnitDimension *fromDim, const CUnitDimension *toDim) const
 
bool GetQuantityConversionParams (const CUnitDimension *fromDim, const CUnitDimension *toDim, double &fromExp, CCompoundUnit &mappingUnit) const
 
CCompoundUnitGetCompoundUnit (const std::string &unitString) const
 
bool LookupFullUnit (const std::string &fullUnitSym, int &unitID, double &prefixScaleFac) const
 
bool LookupFullUnit (const std::string &fullUnitSym, int &unitID, int &prefixID) const
 
const CUnitDescriptorGetUnitDescriptor (int unitID) const
 
const CQuantityTypeDescriptorGetQuantityTypeDescriptor (int qtID) const
 
const CPrefixDescriptorGetPrefixDescriptor (int pfxID) const
 
const CQuantityConversionDescriptorGetQuantityConversionDescriptor (int qcID) const
 
int GetNumQuantities ()
 
int GetNumFundamentalQuantities ()
 
void LoadDefinitionsFlatFile ()
 
CUnitDescriptorNewUnit (const std::string &name, const std::string &symbol, unsigned int quantityTypeId, const std::string &targetUnit, const double &convFac, const double &bias, CUnitDescriptor::PrefixModeType mode, const std::string &prefixSet)
 
CQuantityTypeDescriptorNewQuantityType (const std::string &name, const std::string &expansion="", bool twentyLog=false)
 
CPrefixDescriptorNewPrefix (const std::string &name, const std::string &sym, const double &scaleFac)
 
CQuantityConversionDescriptorNewQuantityConversion (const std::string &fromTypeName, double fromExp, const std::string &toTypeName, const std::string &mappingUnit)
 

Static Public Member Functions

static CUnitConversionEngineGetEngine (void)
 
static void DestroyEngine ()
 

Private Member Functions

 CUnitConversionEngine ()
 
 CUnitConversionEngine (const CUnitConversionEngine &)
 
 ~CUnitConversionEngine ()
 

Private Attributes

QuantityTypeListm_QTList
 
UnitListm_UList
 
PrefixListm_PList
 
QuantityConversionListm_QCList
 
PrefixMapm_PMap
 
UnitSymbolMapm_USMap
 
QuantityNameMapm_QNMap
 
QuantityConversionMapm_QCMap
 
DimensionToQuantityMapm_D2QMap
 
int m_iNumFundamentalQuantities
 
int m_iNumQuantities
 
std::string m_wrkDir
 

Static Private Attributes

static CUnitConversionEngineuce = nullptr
 

Member Typedef Documentation

typedef std::unordered_map<char, unsigned int> biogears::CUnitConversionEngine::PrefixMap
typedef std::unordered_map<std::string, unsigned int> biogears::CUnitConversionEngine::QuantityNameMap
typedef std::unordered_map<std::string, unsigned int> biogears::CUnitConversionEngine::UnitSymbolMap

Constructor & Destructor Documentation

biogears::CUnitConversionEngine::CUnitConversionEngine ( )
private
biogears::CUnitConversionEngine::CUnitConversionEngine ( const CUnitConversionEngine )
inlineprivate
biogears::CUnitConversionEngine::~CUnitConversionEngine ( )
private

Member Function Documentation

double biogears::CUnitConversionEngine::ConvertQuantityType ( const double &  value,
const CCompoundUnit fromUnit,
const CCompoundUnit toUnit 
) const
double biogears::CUnitConversionEngine::ConvertValue ( const double &  value,
const CCompoundUnit fromUnit,
const CCompoundUnit toUnit 
) const
double biogears::CUnitConversionEngine::ConvertValue ( const double &  value,
const std::string &  fromUnit,
const std::string &  toUnit 
) const
double biogears::CUnitConversionEngine::ConvertValueInterval ( const double &  value,
const CCompoundUnit fromUnit,
const CCompoundUnit toUnit 
) const
double biogears::CUnitConversionEngine::ConvertValueInterval ( const double &  value,
const std::string &  fromUnit,
const std::string &  toUnit 
) const
static void biogears::CUnitConversionEngine::DestroyEngine ( )
inlinestatic
CCompoundUnit * biogears::CUnitConversionEngine::GetCompoundUnit ( const std::string &  unitString) const
CUnitConversionEngine & biogears::CUnitConversionEngine::GetEngine ( void  )
static
int biogears::CUnitConversionEngine::GetNumFundamentalQuantities ( )
inline
int biogears::CUnitConversionEngine::GetNumQuantities ( )
inline
const CPrefixDescriptor& biogears::CUnitConversionEngine::GetPrefixDescriptor ( int  pfxID) const
inline
const CQuantityConversionDescriptor& biogears::CUnitConversionEngine::GetQuantityConversionDescriptor ( int  qcID) const
inline
int biogears::CUnitConversionEngine::GetQuantityConversionID ( const CUnitDimension fromDim,
const CUnitDimension toDim 
) const
bool biogears::CUnitConversionEngine::GetQuantityConversionParams ( const CUnitDimension fromDim,
const CUnitDimension toDim,
double &  fromExp,
CCompoundUnit mappingUnit 
) const
const CQuantityTypeDescriptor& biogears::CUnitConversionEngine::GetQuantityTypeDescriptor ( int  qtID) const
inline
int biogears::CUnitConversionEngine::GetQuantityTypeID ( const std::string &  qtName) const
int biogears::CUnitConversionEngine::GetQuantityTypeID ( const CUnitDimension ud) const
const CUnitDescriptor& biogears::CUnitConversionEngine::GetUnitDescriptor ( int  unitID) const
inline
int biogears::CUnitConversionEngine::GetUnitID ( const std::string &  unitSym) const
const std::string& biogears::CUnitConversionEngine::GetWorkingDirectory ( ) const
inline
void biogears::CUnitConversionEngine::LoadDefinitionsFlatFile ( )
bool biogears::CUnitConversionEngine::LookupFullUnit ( const std::string &  fullUnitSym,
int &  unitID,
double &  prefixScaleFac 
) const
inline
bool biogears::CUnitConversionEngine::LookupFullUnit ( const std::string &  fullUnitSym,
int &  unitID,
int &  prefixID 
) const
CPrefixDescriptor * biogears::CUnitConversionEngine::NewPrefix ( const std::string &  name,
const std::string &  sym,
const double &  scaleFac 
)
CQuantityConversionDescriptor * biogears::CUnitConversionEngine::NewQuantityConversion ( const std::string &  fromTypeName,
double  fromExp,
const std::string &  toTypeName,
const std::string &  mappingUnit 
)
CQuantityTypeDescriptor * biogears::CUnitConversionEngine::NewQuantityType ( const std::string &  name,
const std::string &  expansion = "",
bool  twentyLog = false 
)
CUnitDescriptor * biogears::CUnitConversionEngine::NewUnit ( const std::string &  name,
const std::string &  symbol,
unsigned int  quantityTypeId,
const std::string &  targetUnit,
const double &  convFac,
const double &  bias,
CUnitDescriptor::PrefixModeType  mode,
const std::string &  prefixSet 
)
double biogears::CUnitConversionEngine::QuickConvertValue ( const double &  value,
const CCompoundUnit fromUnit,
const CCompoundUnit toUnit 
) const
double biogears::CUnitConversionEngine::QuickConvertValue ( const double &  value,
const std::string &  fromUnit,
const std::string &  toUnit 
) const
void biogears::CUnitConversionEngine::SetWorkingDirectory ( const std::string &  wrkDir)
inline

Member Data Documentation

DimensionToQuantityMap* biogears::CUnitConversionEngine::m_D2QMap
private
int biogears::CUnitConversionEngine::m_iNumFundamentalQuantities
private
int biogears::CUnitConversionEngine::m_iNumQuantities
private
PrefixList* biogears::CUnitConversionEngine::m_PList
private
PrefixMap* biogears::CUnitConversionEngine::m_PMap
private
QuantityConversionList* biogears::CUnitConversionEngine::m_QCList
private
QuantityConversionMap* biogears::CUnitConversionEngine::m_QCMap
private
QuantityNameMap* biogears::CUnitConversionEngine::m_QNMap
private
QuantityTypeList* biogears::CUnitConversionEngine::m_QTList
private
UnitList* biogears::CUnitConversionEngine::m_UList
private
UnitSymbolMap* biogears::CUnitConversionEngine::m_USMap
private
std::string biogears::CUnitConversionEngine::m_wrkDir
private
CUnitConversionEngine * biogears::CUnitConversionEngine::uce = nullptr
staticprivate