icedb  version 0.5.1
Snow particle scattering database API
Public Member Functions | Static Public Member Functions | List of all members
icedb::units::conv_spec Class Reference

Perform interconversions between frequency, wavelength and wavenumber (GHz, Hz, m, cm, um, cm^-1, m^-1) More...

#include <units.hpp>

Inheritance diagram for icedb::units::conv_spec:
Inheritance graph
[legend]
Collaboration diagram for icedb::units::conv_spec:
Collaboration graph
[legend]

Public Member Functions

 conv_spec (const std::string &inUnits, const std::string &outUnits)
 
- Public Member Functions inherited from icedb::units::converter
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 std::shared_ptr< const convertergenerate (const std::string &inUnits, const std::string &outUnits)
 
- Static Public Member Functions inherited from icedb::units::converter
static bool canConvert (const std::string &inUnits, const std::string &outUnits)
 Check if two units can be interconverted. More...
 
static std::shared_ptr< const convertergenerate (const std::string &inUnits, const std::string &outUnits)
 

Additional Inherited Members

- Protected Member Functions inherited from icedb::units::converter
 converter ()
 
- Static Protected Member Functions inherited from icedb::units::converter
static Unithandler_p getConverter (const std::string &inUnits, const std::string &outUnits)
 
- Protected Attributes inherited from icedb::units::converter
Unithandler_p h
 

Detailed Description

Perform interconversions between frequency, wavelength and wavenumber (GHz, Hz, m, cm, um, cm^-1, m^-1)

Definition at line 56 of file units.hpp.

Constructor & Destructor Documentation

◆ conv_spec()

icedb::units::conv_spec::conv_spec ( const std::string &  in,
const std::string &  out 
)

This works by providing a custom converter

Definition at line 64 of file units.cpp.

References icedb::units::implementations::_init(), icedb::units::implementations::spectralUnits::constructConverter(), icedb::registry::options::generate(), icedb::units::converter::h, ICEDB_log, and icedb::logging::ICEDB_LOG_DEBUG_2.

Referenced by generate().

65  : converter()
66  {
67  implementations::_init(); // Static function that registers the builtin unit converters.
69  "Creating spectrum converter for " << in << " to " << out);
70 
71  auto opts = registry::options::generate();
72  opts->setVal<std::string>("inUnits", in);
73  opts->setVal<std::string>("outUnits", out);
75 
76  }
static std::shared_ptr< options > generate()
Definition: options.cpp:18
static std::shared_ptr< const implementations::Unithandler > constructConverter(Converter_registry_provider::optsType opts)
Unithandler_p h
Definition: units.hpp:48
#define ICEDB_log(c, p, x)
Definition: logging.hpp:45
Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ generate()

std::shared_ptr< const converter > icedb::units::conv_spec::generate ( const std::string &  inUnits,
const std::string &  outUnits 
)
static

Definition at line 77 of file units.cpp.

References icedb::units::implementations::_queryBackend(), icedb::units::implementations::_registerBackend(), and conv_spec().

Referenced by icedb::refract::prepRefract().

78  {
79  converter_p res;
80  res = implementations::_queryBackend(inUnits, outUnits, "spec");
81  if (!res) {
82  res = converter_p(new conv_spec(inUnits, outUnits));
83  implementations::_registerBackend(inUnits, outUnits, "spec", res);
84  }
85  return res;
86  }
void _registerBackend(const std::string &inUnits, const std::string &outUnits, const std::string &family, converter_p p)
converter_p _queryBackend(const std::string &inUnits, const std::string &outUnits, const std::string &family)
conv_spec(const std::string &inUnits, const std::string &outUnits)
Definition: units.cpp:64
std::shared_ptr< const converter > converter_p
Definition: units.hpp:16
Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: