icedb  version 0.5.1
Snow particle scattering database API
unitsBackend.hpp
Go to the documentation of this file.
1 #pragma once
2 #include "../icedb/defs.h"
3 #include <string>
4 #include <memory>
5 #include "../icedb/units/units.hpp"
6 #include "../icedb/units/unitsPlugins.hpp"
7 namespace icedb {
8  namespace units {
9  namespace implementations {
10  void _init();
11  void _registerBackend(const std::string &inUnits, const std::string &outUnits,
12  const std::string &family, converter_p);
13  converter_p _queryBackend(const std::string &inUnits, const std::string &outUnits,
14  const std::string &family);
15  struct simpleUnits : public Unithandler {
17  static std::shared_ptr<const Unithandler> constructConverter(
19  simpleUnits(const std::string &in, const std::string &out, bool init = true);
20  bool validLength(const std::string &_inUnits, const std::string &_outUnits);
21  bool validFreq(const std::string &_inUnits, const std::string &_outUnits);
22  bool validVol(const std::string &_inUnits, const std::string &_outUnits);
23  bool validPres(const std::string &in, const std::string &out);
24  bool validMass(const std::string &in, const std::string &out);
25  bool validTemp(const std::string &in, const std::string &out);
26  bool validDens(const std::string &in, const std::string &out);
27  virtual ~simpleUnits();
29  std::string _inUnits, _outUnits;
30  bool _valid;
31  virtual bool isValid() const;
32  double convert(double inVal) const;
33  };
34 
37  static std::shared_ptr<const implementations::Unithandler> constructConverter(
39  spectralUnits(const std::string &in, const std::string &out);
40  virtual ~spectralUnits();
41  std::string _inUnits, _outUnits;
42  bool _valid, _Iin, _Iout;
43  std::shared_ptr<const implementations::Unithandler> hIn, hOut;
44  virtual bool isValid() const;
45  virtual double convert(double input) const;
46  };
47  }
48  }
49 }
static bool canConvert(Converter_registry_provider::optsType opts)
Definition: unitsSimple.cpp:10
bool validMass(const std::string &in, const std::string &out)
simpleUnits(const std::string &in, const std::string &out, bool init=true)
Definition: unitsSimple.cpp:24
bool validPres(const std::string &in, const std::string &out)
bool validLength(const std::string &_inUnits, const std::string &_outUnits)
Definition: unitsSimple.cpp:40
std::shared_ptr< const implementations::Unithandler > hOut
bool validTemp(const std::string &in, const std::string &out)
void _registerBackend(const std::string &inUnits, const std::string &outUnits, const std::string &family, converter_p p)
bool validFreq(const std::string &_inUnits, const std::string &_outUnits)
Definition: unitsSimple.cpp:65
converter_p _queryBackend(const std::string &inUnits, const std::string &outUnits, const std::string &family)
Opaque object provided to perform unit manipulations.
bool validVol(const std::string &_inUnits, const std::string &_outUnits)
Definition: unitsSimple.cpp:80
bool validDens(const std::string &in, const std::string &out)
static std::shared_ptr< const Unithandler > constructConverter(Converter_registry_provider::optsType opts)
Definition: unitsSimple.cpp:17
std::shared_ptr< const converter > converter_p
Definition: units.hpp:16