ADTF  3.18.2
ddelement.h
Go to the documentation of this file.
1 
15 #ifndef DDELEM_H_INCLUDED
16 #define DDELEM_H_INCLUDED
17 
18 #include <ddl/dd/dd.h>
19 #include <ddl/dd/dddatatype.h>
20 #include <ddl/dd/ddenum.h>
21 #include <ddl/dd/ddstructure.h>
22 
23 #include <string>
24 
25 namespace ddl {
26 
28 class DDStructure;
30 
36 class DDElement {
37 public:
46 
51  DDElement() = default;
56  DDElement(DDElement&&) = default;
61  DDElement(const DDElement&) = default;
67  DDElement& operator=(DDElement&&) = default;
73  DDElement& operator=(const DDElement&) = default;
78  ~DDElement() = default;
79 
104  DDElement(const std::string& name,
105  const dd::DataType& data_type,
106  const Deserialized& deserialized_info = {},
107  const Serialized& serialized_info = {},
108  const dd::ArraySize& array_size = 1,
109  const std::string& description = {},
110  const std::string& comment = {},
111  const dd::BaseUnit& base_unit = {},
112  const std::string& minimum_value = {},
113  const std::string& maximum_value = {},
114  const std::string& default_value = {},
115  const std::string& scale = {},
116  const std::string& offset = {});
117 
146  DDElement(const std::string& name,
147  const dd::DataType& data_type,
148  const Deserialized& deserialized_info,
149  const Serialized& serialized_info,
150  const dd::ArraySize& array_size,
151  const std::string& description,
152  const std::string& comment,
153  const DDUnit& unit,
154  const std::string& minimum_value = {},
155  const std::string& maximum_value = {},
156  const std::string& default_value = {},
157  const std::string& scale = {},
158  const std::string& offset = {});
159 
185  DDElement(const std::string& name,
186  const DDDataType& data_type,
187  const Deserialized& deserialized_info = {},
188  const Serialized& serialized_info = {},
189  const dd::ArraySize& array_size = 1,
190  const std::string& description = {},
191  const std::string& comment = {},
192  const dd::BaseUnit& base_unit = {},
193  const std::string& minimum_value = {},
194  const std::string& maximum_value = {},
195  const std::string& default_value = {},
196  const std::string& scale = {},
197  const std::string& offset = {});
198 
227  DDElement(const std::string& name,
228  const DDDataType& data_type,
229  const Deserialized& deserialized_info,
230  const Serialized& serialized_info,
231  const dd::ArraySize& array_size,
232  const std::string& description,
233  const std::string& comment,
234  const DDUnit& unit,
235  const std::string& minimum_value = {},
236  const std::string& maximum_value = {},
237  const std::string& default_value = {},
238  const std::string& scale = {},
239  const std::string& offset = {});
240 
270  DDElement(const std::string& name,
271  const DDEnum& enum_type,
272  const Deserialized& deserialized_info = {},
273  const Serialized& serialized_info = {},
274  const dd::ArraySize& array_size = 1,
275  const std::string& description = {},
276  const std::string& comment = {},
277  const dd::BaseUnit& base_unit = {},
278  const std::string& value = {},
279  const std::string& minimum_value = {},
280  const std::string& maximum_value = {},
281  const std::string& default_value = {},
282  const std::string& scale = {},
283  const std::string& offset = {});
284 
317  DDElement(const std::string& name,
318  const DDEnum& enum_type,
319  const Deserialized& deserialized_info,
320  const Serialized& serialized_info,
321  const dd::ArraySize& array_size,
322  const std::string& description,
323  const std::string& comment,
324  const DDUnit& unit,
325  const std::string& value = {},
326  const std::string& minimum_value = {},
327  const std::string& maximum_value = {},
328  const std::string& default_value = {},
329  const std::string& scale = {},
330  const std::string& offset = {});
331 
351  DDElement(const std::string& name,
352  const DDStructure& structure_type,
353  const Deserialized& deserialized_info = {},
354  const Serialized& serialized_info = {},
355  const dd::ArraySize& array_size = 1,
356  const std::string& description = {},
357  const std::string& comment = {});
358 
370  const dd::DataDefinition& getDD() const;
371 
372 private:
373  // the data definition
374  dd::DataDefinition _dd;
375  // the element to add to the struct
376  dd::StructType::Element _element;
377 };
378 } // namespace ddl
379 
380 #endif // DDELEM_H_INCLUDED
A DataType class holding the DD for a Datatype with dependencies.
Definition: dddatatype.h:30
Utility class for a complete valid data definition of one StructType::Element and its dependencies.
Definition: ddelement.h:36
DDElement(DDElement &&)=default
Construct a new DDElement object.
const dd::StructType::Element & getElement() const
Get the Element object.
DDElement(const std::string &name, const DDEnum &enum_type, const Deserialized &deserialized_info, const Serialized &serialized_info, const dd::ArraySize &array_size, const std::string &description, const std::string &comment, const DDUnit &unit, const std::string &value={}, const std::string &minimum_value={}, const std::string &maximum_value={}, const std::string &default_value={}, const std::string &scale={}, const std::string &offset={})
Construct a new DDElement object that uses a Enum Type (dd::EnumType) Use it like:
DDElement(const std::string &name, const dd::DataType &data_type, const Deserialized &deserialized_info={}, const Serialized &serialized_info={}, const dd::ArraySize &array_size=1, const std::string &description={}, const std::string &comment={}, const dd::BaseUnit &base_unit={}, const std::string &minimum_value={}, const std::string &maximum_value={}, const std::string &default_value={}, const std::string &scale={}, const std::string &offset={})
Construct a new DDElement object that uses a POD Type (dd::DataType) Use it like:
DDElement(const std::string &name, const DDEnum &enum_type, const Deserialized &deserialized_info={}, const Serialized &serialized_info={}, const dd::ArraySize &array_size=1, const std::string &description={}, const std::string &comment={}, const dd::BaseUnit &base_unit={}, const std::string &value={}, const std::string &minimum_value={}, const std::string &maximum_value={}, const std::string &default_value={}, const std::string &scale={}, const std::string &offset={})
Construct a new DDElement object that uses a Enum Type (dd::EnumType) Use it like:
DDElement(const std::string &name, const DDStructure &structure_type, const Deserialized &deserialized_info={}, const Serialized &serialized_info={}, const dd::ArraySize &array_size=1, const std::string &description={}, const std::string &comment={})
Construct a new DDElement object that uses a Enum Type (dd::EnumType) Use it like:
DDElement(const std::string &name, const DDDataType &data_type, const Deserialized &deserialized_info={}, const Serialized &serialized_info={}, const dd::ArraySize &array_size=1, const std::string &description={}, const std::string &comment={}, const dd::BaseUnit &base_unit={}, const std::string &minimum_value={}, const std::string &maximum_value={}, const std::string &default_value={}, const std::string &scale={}, const std::string &offset={})
Construct a new DDElement object that uses a POD Type (dd::DataType) Use it like:
const dd::DataDefinition & getDD() const
retrieves a valid DataDefinition for the elements datatypes and units.
~DDElement()=default
Destroy the DDElement object.
DDElement(const std::string &name, const DDDataType &data_type, const Deserialized &deserialized_info, const Serialized &serialized_info, const dd::ArraySize &array_size, const std::string &description, const std::string &comment, const DDUnit &unit, const std::string &minimum_value={}, const std::string &maximum_value={}, const std::string &default_value={}, const std::string &scale={}, const std::string &offset={})
Construct a new DDElement object that uses a POD Type (dd::DataType) Use it like:
DDElement(const DDElement &)=default
Construct a new DDElement object.
DDElement()=default
Construct a new DDElement object.
DDElement & operator=(DDElement &&)=default
assignment move operator
dd::datamodel::StructType::SerializedInfo Serialized
Serialized definiton for one element.
Definition: ddelement.h:45
DDElement & operator=(const DDElement &)=default
assignment copy operator
DDElement(const std::string &name, const dd::DataType &data_type, const Deserialized &deserialized_info, const Serialized &serialized_info, const dd::ArraySize &array_size, const std::string &description, const std::string &comment, const DDUnit &unit, const std::string &minimum_value={}, const std::string &maximum_value={}, const std::string &default_value={}, const std::string &scale={}, const std::string &offset={})
Construct a new DDElement object that uses a POD Type (dd::DataType) Use it like:
Utility class for a complete valid data definition of one EnumType and its dependencies.
Definition: ddenum.h:29
Utility class for a complete valid data definition of one StructType and its dependencies.
Definition: ddstructure.h:55
The unit class holding a reference to its complete DD (references to baseunits and prefixes)
Definition: ddunit.h:92
Sinc DDL 2.0 it is possible to define arraysize with a string that indicates a dynamic array.
The Data Definiton class uses the validation model to keep a Data Definition datamodel (ddl::dd::data...
Definition: dd.h:87
observable DataDefinition object class to describe (POD) DataType.
class to describe the deserialized information of a StructType::Element.
observable DataDefinition object class for a Element of a StructType.
class to describe the serialized information of a StructType::Element.
OO DataDefinition - Data Definition.
OO DataDefinition DataTypes header for template based DataType usages.
OO DataDefinition Enum header.
@ enum_type
value for enum type
Definition: ddl_capi.h:56
@ data_type
value for data type
Definition: ddl_capi.h:55
OO DataDefinition DDStructure Header.
datamodel::BaseUnit BaseUnit
Reuse of datamodel base unit class - ddl::dd::datamodel::BaseUnit.
Definition: dd.h:34
@ unit
the unit is a unit (Unit)
@ base_unit
the unit is a base unit (BaseUnit)