27 static const char *
const roottag;
28 static const char *
const refunitstag;
29 static const char *
const unitattributetag;
31 enum UnitType { Unknown_Unit=-1, No_Unit=0,
35 ElectricCurrent_Unit=4,
36 ThermodynamicTemperature_Unit=5,
37 SubstanceAmount_Unit=6,
38 LuminousIntensity_Unit=7,
42 static const short int unittypequantifiers[numUnitTypes][8];
43 static const char *
const unittypesymbols[numUnitTypes];
44 static const char *
const unittypequalifiers[numUnitTypes];
46 static const int numPrefixes=21;
47 static const char *
const prefixsymbols[numPrefixes];
48 static const short int prefixquantifiers[numPrefixes];
54 static std::size_t string_endswith(
std::string str,
const char* suffix);
59 { initialize(value); }
64 { initialize(value,symbol); }
71 {
for(
int i=0;i<numUnitTypes;++i) m_Q[i]=vu.m_Q[i];}
78 { m_value=vu.m_value;
for(
int i=0;i<numUnitTypes;++i) m_Q[i]=vu.m_Q[i];
return *
this; }
85 { m_value=d;
for(
int i=0;i<numUnitTypes;++i) m_Q[i]=0;
return *
this; }
95 UnitType unittype()
const;
98 bool iscompatible(
const ValueUnit& vu)
const
99 {
return m_Q[1]==vu.m_Q[1]&&m_Q[2]==vu.m_Q[2]&&m_Q[3]==vu.m_Q[3]&&m_Q[4]==vu.m_Q[4]
100 &&m_Q[5]==vu.m_Q[5]&&m_Q[6]==vu.m_Q[6]&&m_Q[7]==vu.m_Q[7]; }
101 bool iscompatible(UnitType ut)
const
102 {
return ut==unittype(); }
109 void print(std::ostream& ostrm=std::cout,
bool simplify=
true)
const;
113 void initialize(
double value=0.);
114 void initialize(
double value,
const std::string& symbol);
117 short int m_Q[numUnitTypes];
126 unsigned long getNodeValueUnit(
const char* nodepath, ValueUnit& value)
const;
127 unsigned long getNodeValueUnit(
const std::string& nodepath, ValueUnit& value)
const
128 {
return getNodeValueUnit(nodepath.c_str(),value); }
129 unsigned long getNodeValueReduced(
const char* nodepath,
double& value, UnitType ut=Unknown_Unit)
const;
130 unsigned long getNodeValueReduced(
const std::string& nodepath,
double& value, UnitType ut=Unknown_Unit)
const
131 {
return getNodeValueReduced(nodepath.c_str(),value,ut); }
134 ValueUnit m_refunits[numUnitTypes];
145 vu.
print(ostrm,
true);
Definition: xmlfileUnits.h:52
ValueUnit(const ValueUnit &vu)
XMLfileUnits::ValueUnit copy constructor duplicate a ValueNode.
Definition: xmlfileUnits.h:69
ValueUnit operator/(const ValueUnit &vu) const
divide operator divide other ValueUnit
Definition: xmlfileUnits.cpp:106
void print(std::ostream &ostrm=std::cout, bool simplify=true) const
print data to stream print the node data
Definition: xmlfileUnits.cpp:164
ValueUnit & operator=(const ValueUnit &vu)
assignment operator copy/duplicate other ValueUnit content to ValueUnit
Definition: xmlfileUnits.h:77
ValueUnit(double value=0.)
XMLfileUnits::ValueUnit constructor.
Definition: xmlfileUnits.h:58
ValueUnit(double value, const std::string &symbol)
XMLfileUnits::ValueUnit constructor.
Definition: xmlfileUnits.h:63
XML file with unit attributes abstraction.
Definition: xmlfileUnits.h:25
XML file abstraction.
Definition: xmlfile.h:47
::xsd::cxx::tree::string< char, simple_type > string
C++ type corresponding to the string XML Schema built-in type.
Definition: vtk-punstructured.h:270
std::ostream & operator<<(std::ostream &ostrm, const XMLfileUnits::ValueUnit &vu)
write a ValueUnit to a stream write XML query data to an output stream
Definition: xmlfileUnits.h:143