ADTF  3.18.2
ddunit.h
Go to the documentation of this file.
1 
15 #ifndef DDLUNIT_H_INCLUDED
16 #define DDLUNIT_H_INCLUDED
17 
18 #include <ddl/dd/dd.h>
20 
21 #include <memory>
22 #include <string>
23 
24 namespace ddl {
25 
31 class DDRefUnit {
32 public:
37  DDRefUnit() = delete;
42  DDRefUnit(const DDRefUnit&) = default;
47  DDRefUnit(DDRefUnit&&) = default;
53  DDRefUnit& operator=(const DDRefUnit&) = default;
59  DDRefUnit& operator=(DDRefUnit&&) = default;
60 
68  DDRefUnit(const dd::BaseUnit& base_unit, int32_t power, const dd::UnitPrefix& unit_prefix);
74  const dd::Unit::RefUnit& getRefUnit() const;
80  const dd::DataDefinition& getDD() const;
81 
82 private:
83  dd::Unit::RefUnit _ref_unit;
85 };
86 
92 class DDUnit {
93 public:
98  DDUnit() = delete;
103  DDUnit(const DDUnit&);
121 
132  DDUnit(const std::string& name,
133  const std::string& numerator,
134  const std::string& denominator,
135  const std::string& offset,
136  const std::vector<DDRefUnit>& ref_units = {});
137 
144  void addRefUnit(const DDRefUnit& ref_unit);
145 
151  const dd::Unit& getUnit() const;
157  const dd::DataDefinition& getDD() const;
158 
159 private:
160  std::shared_ptr<dd::Unit> _unit;
161  dd::DataDefinition _dd;
162 };
163 
164 } // namespace ddl
165 
166 #endif // DDLUNIT_H_INCLUDED
The DDRefunit class holding a reference to its complete DD (references to baseunit and prefix)
Definition: ddunit.h:31
const dd::DataDefinition & getDD() const
Get the data definition.
DDRefUnit(DDRefUnit &&)=default
move CTOR
DDRefUnit(const dd::BaseUnit &base_unit, int32_t power, const dd::UnitPrefix &unit_prefix)
CTOR.
DDRefUnit()=delete
no default CTOR
DDRefUnit & operator=(DDRefUnit &&)=default
move assignment operator
DDRefUnit & operator=(const DDRefUnit &)=default
copy assignment operator
const dd::Unit::RefUnit & getRefUnit() const
Get the Ref Unit object.
DDRefUnit(const DDRefUnit &)=default
copy CTOR
The unit class holding a reference to its complete DD (references to baseunits and prefixes)
Definition: ddunit.h:92
DDUnit(const std::string &name, const std::string &numerator, const std::string &denominator, const std::string &offset, const std::vector< DDRefUnit > &ref_units={})
CTOR.
DDUnit & operator=(DDUnit &&)
move assignment operator
const dd::DataDefinition & getDD() const
Get the data definiton.
DDUnit & operator=(const DDUnit &)
copy assignment operator
DDUnit(DDUnit &&)
move CTOR
DDUnit()=delete
no default CTOR
const dd::Unit & getUnit() const
Get the Unit object.
void addRefUnit(const DDRefUnit &ref_unit)
adding a refunit
DDUnit(const DDUnit &)
copy CTOR
The Data Definiton class uses the validation model to keep a Data Definition datamodel (ddl::dd::data...
Definition: dd.h:87
datamodel for the refUnit
Unit Prefix - datamodel pefixes.
OO DataDefinition - Data Definition.
OO DataDefinition Redesign.
@ base_unit
the unit is a base unit (BaseUnit)