ADTF
Loading...
Searching...
No Matches
datamodel_types.h
Go to the documentation of this file.
1
14
15#ifndef DD_DATA_MODEL_TYPES_H_INCLUDED
16#define DD_DATA_MODEL_TYPES_H_INCLUDED
17
24
25#include <string>
26#include <vector>
27
28namespace ddl {
29
30namespace dd {
31
32namespace datamodel {
33
38class TypeBase {
39public:
44 TypeBase() = default;
49 TypeBase(const TypeBase&) = default;
54 TypeBase(TypeBase&&) = default;
60 TypeBase& operator=(const TypeBase&) = default;
72 TypeBase(std::string name);
77 virtual ~TypeBase() = default;
78
85 virtual TypeOfType getTypeOfType() const = 0;
93 virtual void setName(const std::string& name);
99 const std::string& getName() const;
100
101protected:
103 std::string _name;
104};
105
110class DataType : public TypeBase,
111 public ModelSubject<DataType>,
112 public utility::TypeAccessMapSubject<DataType>,
113 public InfoMap {
114public:
124 DataType(const DataType&) = default;
129 DataType(DataType&&) = default;
135 DataType& operator=(const DataType&) = default;
157 DataType(std::string name,
158 size_t bit_size,
159 std::string description = {},
160 OptionalSize array_size = {},
161 std::string unit_name = {},
162 std::string minimum_value = {},
163 std::string maximum_value = {},
164 OptionalSize default_type_alignment = {});
165
179 DataType(const std::initializer_list<std::string>& initializer);
184 virtual ~DataType() = default;
193 bool operator==(const DataType& other) const;
202 bool operator!=(const DataType& other) const;
203
207 TypeOfType getTypeOfType() const override;
211 void setName(const std::string& name) override;
212
218 size_t getBitSize() const;
224 void setBitSize(size_t size);
225
237 void setArraySize(OptionalSize array_size);
238
244 const std::string& getUnitName() const;
250 void setUnitName(const std::string& unit_name);
251
258 const std::string& getMin() const;
265 void setMin(const std::string& minimum_value);
266
273 const std::string& getMax() const;
280 void setMax(const std::string& maximum_value);
281
287 const std::string& getDescription() const;
293 void setDescription(const std::string& description);
294
301
302private:
303 void notify(const std::string& additional_info);
304 size_t _bit_size = 0;
305 std::string _description = {};
306 OptionalSize _array_size = {};
307 std::string _unit_name = {};
308 std::string _minimum_value = {};
309 std::string _maximum_value = {};
310 OptionalSize _default_type_alignment = {};
311};
312
317class EnumType : public TypeBase,
318 public ModelSubject<EnumType>,
319 public utility::TypeAccessMapSubject<EnumType>,
320 public InfoMap {
321public: // types
333 friend Elements;
335
336public:
341 EnumType() = delete;
358 EnumType(const EnumType& other);
373 EnumType(const std::string& name,
374 const std::string& data_type_name,
375 const std::vector<Element>& elements = {});
380 virtual ~EnumType() = default;
388 bool operator==(const EnumType& other) const;
396 bool operator!=(const EnumType& other) const;
397
403 const Elements& getElements() const;
410
414 TypeOfType getTypeOfType() const override;
418 void setName(const std::string& name) override;
419
425 const std::string& getDataTypeName() const;
431 void setDataTypeName(const std::string& data_type_name);
432
433private:
434 void notify(ModelEventCode code,
436 const std::string& additional_info);
437 bool validateContains(const Elements::access_type& element_name) const;
438 void notifyChangedMapContent(utility::TypeAccessMapEventCode code,
439 Elements::access_type& element,
440 const std::string& additional_info);
441
442 std::string _data_type_name = {};
443 Elements _elements;
444};
445
450class StructType : public TypeBase,
451 public ModelSubject<StructType>,
452 public utility::TypeAccessMapSubject<StructType>,
453 public InfoMap {
454public:
459 StructType() = delete;
476 StructType(const StructType& other);
488 virtual ~StructType() = default;
489
494 public:
526 virtual ~SerializedInfo() = default;
527
538 OptionalSize bit_pos = {},
539 OptionalSize num_bits = {});
556 SerializedInfo(const std::initializer_list<size_t>& intializer);
564 bool operator==(const SerializedInfo& other) const;
565
580 void setBytePos(OptionalSize byte_pos, bool prevent_notification = false);
581
596 void setBitPos(OptionalSize bit_pos, bool prevent_notification = false);
597
609 void setNumBits(OptionalSize num_bits);
610
622 void setByteOrder(ByteOrder byte_order);
623
624 protected:
632 virtual void notifyChangeSerialized(const std::string&){};
633
634 private:
635 OptionalSize _byte_pos = {};
636 OptionalSize _bit_pos = {};
637 OptionalSize _num_bits = {};
638 ByteOrder _byte_order = e_le;
639 };
640
645 public:
677 virtual ~DeserializedInfo() = default;
678
684 DeserializedInfo(size_t alignment);
690 DeserializedInfo(const std::initializer_list<size_t>& intializer);
691
699 bool operator==(const DeserializedInfo& other) const;
700
706 virtual size_t getAlignment() const;
714 void setAlignment(size_t alignment);
715
716 protected:
723 virtual void notifyChangeDeserialized(const std::string&){};
724
725 private:
726 size_t _alignment = Alignment::e_invalid;
727 };
728
733 class Element : public SerializedInfo,
734 public DeserializedInfo,
735 public utility::TypeAccessListSubject<Element>,
736 public InfoMap {
737 public:
747 Element(const Element& other);
752 Element(Element&& other);
758 Element& operator=(const Element& other);
764 Element& operator=(Element&& other) noexcept;
765
788 Element(std::string name,
789 std::string type_name,
790 DeserializedInfo deserialized_info,
791 SerializedInfo serialized_info,
792 dd::ArraySize array_size = {},
793 std::string description = {},
794 std::string comment = {},
795 std::string unit_name = {},
796 std::string value = {},
797 std::string minimum_value = {},
798 std::string maximum_value = {},
799 std::string default_value = {},
800 std::string scale = {},
801 std::string offset = {});
802
826 Element(std::string name,
827 std::string type_name,
828 DeserializedInfo deserialized_info,
829 SerializedInfo serialized_info,
830 dd::ArraySize array_size,
831 std::string description,
832 std::string comment,
833 std::string unit_name,
834 std::string value,
835 std::string minimum_value,
836 std::string maximum_value,
837 std::string default_value,
838 std::string scale,
839 std::string offset,
840 std::string valid_element_count);
841
849 bool operator==(const Element& other) const;
857 bool operator!=(const Element& other) const;
858
864 const std::string& getName() const;
873 void setName(const std::string& name);
874
880 const std::string& getTypeName() const;
887 void setTypeName(const std::string& type_name);
888
894 const std::string& getDescription() const;
901 void setDescription(const std::string& description);
902
908 const std::string& getComment() const;
915 void setComment(const std::string& comment);
916
922 const ArraySize& getArraySize() const;
929 void setArraySize(const ArraySize& array_size);
930
938 const std::string& getValidElementCount() const;
948 void setValidElementCount(const std::string& valid_element_count);
949
955 const std::string& getUnitName() const;
962 void setUnitName(const std::string& unit_name);
963
969 const std::string& getValue() const;
979 void setValue(const std::string& value);
980
987 const std::string& getMin() const;
994 void setMin(const std::string& minimum_value);
995
1002 const std::string& getMax() const;
1009 void setMax(const std::string& maximum_value);
1010
1016 const std::string& getDefault() const;
1024 void setDefault(const std::string& default_value);
1025
1031 const std::string& getScale() const;
1038 void setScale(const std::string& scale);
1039
1045 const std::string& getOffset() const;
1052 void setOffset(const std::string& offset);
1053
1054 private:
1055 void notifyChangeSerialized(const std::string& additional_info) override;
1056 void notifyChangeDeserialized(const std::string& additional_info) override;
1057
1058 private:
1059 std::string _name;
1060 std::string _type_name;
1061 std::string _description;
1062 std::string _unit_name;
1063 std::string _comment;
1064 ArraySize _array_size = 1;
1065 std::string _value;
1066 std::string _minimum_value;
1067 std::string _maximum_value;
1068 std::string _default_value;
1069 std::string _scale;
1070 std::string _offset;
1071 };
1072
1085 StructType(const std::string& name,
1086 const std::string& struct_version = "1",
1087 OptionalSize alignment = {},
1088 const std::string& comment = {},
1089 dd::Version ddl_version = dd::Version(0, 0),
1090 const std::vector<Element>& elements = {});
1098 bool operator==(const StructType& other) const;
1106 bool operator!=(const StructType& other) const;
1107
1111 TypeOfType getTypeOfType() const override;
1115 void setName(const std::string& name) override;
1116
1130
1136 const std::string& getComment() const;
1143 void setComment(const std::string& comment);
1144
1150 const std::string& getVersion() const;
1156 void setVersion(const std::string& struct_version);
1157
1171 void setLanguageVersion(const Version& ddl_version);
1172
1173public:
1179 friend Elements;
1181
1186 const Elements& getElements() const;
1193
1194private:
1195 void notify(ModelEventCode code,
1197 const std::string& additional_info);
1198 bool validateContains(const Elements::access_type& element_name) const;
1199 void notifyChangedListContent(utility::TypeAccessListEventCode code,
1200 Elements::access_type& element,
1201 const std::string& additional_info);
1202 [[deprecated]]
1203 const Elements::container_named_type* getNamedItemList() const;
1204 [[deprecated]]
1205 Elements::container_named_type* getNamedItemList();
1206
1207 const Elements::container_named_type* getNamedItemViewList() const;
1208 Elements::container_named_type* getNamedItemViewList();
1209
1210 std::string _struct_version;
1211 dd::Version _ddl_version;
1212 std::string _comment;
1213 OptionalSize _alignment = Alignment::e1;
1214 Elements _elements;
1215};
1216
1222 public ModelSubject<StreamMetaType>,
1223 public utility::TypeAccessMapSubject<StreamMetaType>,
1224 public InfoMap {
1225public: // types
1237 friend Properties;
1239
1240public:
1245 StreamMetaType() = delete;
1279 StreamMetaType(std::string name,
1280 std::string version,
1281 std::string parent = {},
1282 const std::vector<Property>& properties = {});
1287 virtual ~StreamMetaType() = default;
1295 bool operator==(const StreamMetaType& other) const;
1303 bool operator!=(const StreamMetaType& other) const;
1304
1317
1321 TypeOfType getTypeOfType() const override;
1325 void setName(const std::string& name) override;
1326
1332 const std::string& getParent() const;
1340 void setParent(const std::string& parent);
1341
1347 const std::string& getVersion() const;
1354 void setVersion(const std::string& version);
1355
1356private:
1357 void notify(ModelEventCode code,
1359 const std::string& additional_info);
1360 bool validateContains(const Properties::access_type& prop) const;
1361 void notifyChangedMapContent(utility::TypeAccessMapEventCode code,
1362 Properties::access_type& element,
1363 const std::string& additional_info);
1364
1365 std::string _version = {};
1366 std::string _parent = {};
1367 Properties _properties;
1368};
1369
1383 std::shared_ptr<datamodel::DataType> _data_type = {};
1387 std::shared_ptr<datamodel::EnumType> _enum_type = {};
1391 std::shared_ptr<datamodel::StructType> _struct_type = {};
1392};
1393
1394} // namespace datamodel
1395} // namespace dd
1396} // namespace ddl
1397
1399{
1407 static constexpr auto _other_types = "enumtype, structtype or streammetatype";
1414 static std::string getDifference(const ddl::dd::datamodel::DataType& left, const ddl::dd::datamodel::DataType& right);
1415 };
1416
1423 static constexpr auto _other_types = "datatype, streammetatype or structtype";
1430 static std::string getDifference(const ddl::dd::datamodel::EnumType& left, const ddl::dd::datamodel::EnumType& right);
1431 };
1432
1439 static constexpr auto _other_types = "datatype, enumtype or streammetatype";
1447 };
1448
1464}
1465
1466#endif // DD_DATA_MODEL_TYPES_H_INCLUDED
Definition dd_common_types.h:378
static ByteOrder getPlatformDefault()
Get the current Platform Byteorder.
DDL Version.
Definition dd_common_types.h:203
observable DataDefinition object class to describe (POD) DataType.
Definition datamodel_types.h:113
const std::string & getUnitName() const
Get the Unit Name.
size_t getBitSize() const
Get the Bit Size.
void setArraySize(OptionalSize array_size)
Set the Array Size object.
DataType & operator=(const DataType &)=default
copy assignment operator.
void setMax(const std::string &maximum_value)
Set the Max (introduced in DDL 3.0)
bool operator==(const DataType &other) const
equality operator.
void setName(const std::string &name) override
Set the Name.
OptionalSize getArraySize() const
Get the Array Size (optional)
void setUnitName(const std::string &unit_name)
Set the Unit Name.
DataType & operator=(DataType &&)=default
move assignment operator.
TypeOfType getTypeOfType() const override
Get the Type Of the Type (data_type, enum_type, struct_type, stream_meta_type).
const std::string & getMax() const
Get the Max Value for information (introduced in DDL 3.0)
const std::string & getMin() const
Get the Min Value for information (introduced in DDL 3.0)
void setMin(const std::string &minimum_value)
Set the Min (introduced in DDL 3.0)
DataType()
default CTOR
Definition datamodel_types.h:119
void setBitSize(size_t size)
Set the Bit Size.
bool operator!=(const DataType &other) const
non equality operator.
const std::string & getDescription() const
Get the Description.
DataType(const std::initializer_list< std::string > &initializer)
CTOR with initializer.
void setDescription(const std::string &description)
Set the Description.
DataType(DataType &&)=default
move CTOR
DataType(std::string name, size_t bit_size, std::string description={}, OptionalSize array_size={}, std::string unit_name={}, std::string minimum_value={}, std::string maximum_value={}, OptionalSize default_type_alignment={})
CTOR.
virtual ~DataType()=default
DTOR.
const OptionalSize & getDefaultAlignment() const
Get the default Alignment if set.
DataType(const DataType &)=default
copy CTOR
observable DataDefinition object class to describe EnumType.
Definition datamodel_types.h:320
void setName(const std::string &name) override
Set the Name.
EnumType()=delete
no default CTOR
TypeOfType getTypeOfType() const override
Get the Type Of the Type (data_type, enum_type, struct_type, stream_meta_type).
Elements & getElements()
Get the Elements object.
EnumType(const EnumType &other)
Copy CTOR.
bool operator==(const EnumType &other) const
equality operator.
const Elements & getElements() const
Get the Elements object.
EnumType & operator=(EnumType &&)
move assignment operator
const std::string & getDataTypeName() const
Get the Data Type Name.
KeyValuePair Element
Enum type element defintion as Name Value pair.
Definition datamodel_types.h:326
bool operator!=(const EnumType &other) const
non equality operator.
EnumType & operator=(const EnumType &other)
copy assignment operator
void setDataTypeName(const std::string &data_type_name)
Set the Data Type Name.
utility::TypeAccessMap< Element, EnumType > Elements
container class for elements in EnumType
Definition datamodel_types.h:331
EnumType(const std::string &name, const std::string &data_type_name, const std::vector< Element > &elements={})
Construct a new Enum Type object.
virtual ~EnumType()=default
DTOR.
EnumType(EnumType &&)
move CTOR.
observable KeyValuePair
Definition datamodel_keyvalue.h:33
bool operator==(const StreamMetaType &other) const
equality operator.
StreamMetaType & operator=(StreamMetaType &&)
move assignment operator
TypeOfType getTypeOfType() const override
Get the Type Of the Type (data_type, enum_type, struct_type, stream_meta_type).
Properties & getProperties()
Get the Properties object.
const std::string & getParent() const
Get the Parent.
utility::TypeAccessMap< Property, StreamMetaType > Properties
container of properties for the StreamMetaType::Property.
Definition datamodel_types.h:1235
const Properties & getProperties() const
Get the Properties object.
void setName(const std::string &name) override
Set the Name.
const std::string & getVersion() const
Get the Version.
KeyValuePair Property
defintion of properties by using name - type pair.
Definition datamodel_types.h:1230
void setVersion(const std::string &version)
Set the Version.
virtual ~StreamMetaType()=default
DTOR.
void setParent(const std::string &parent)
Set the Parent This is only valid if the parent is a valid other streammetatype.
bool operator!=(const StreamMetaType &other) const
non equality operator.
StreamMetaType(const StreamMetaType &other)
copy CTOR
StreamMetaType(std::string name, std::string version, std::string parent={}, const std::vector< Property > &properties={})
CTOR.
StreamMetaType & operator=(const StreamMetaType &other)
copy assignment operator
StreamMetaType()=delete
no default CTOR
StreamMetaType(StreamMetaType &&)
move CTOR
DeserializedInfo(const DeserializedInfo &)=default
copy CTOR
DeserializedInfo & operator=(DeserializedInfo &&)=default
move assignment operator
bool operator==(const DeserializedInfo &other) const
equality operator.
DeserializedInfo(const std::initializer_list< size_t > &intializer)
CTOR.
DeserializedInfo(DeserializedInfo &&)=default
move CTOR
DeserializedInfo & operator=(const DeserializedInfo &)=default
copy assignment operator
DeserializedInfo()
Default CTOR.
Definition datamodel_types.h:650
void setAlignment(size_t alignment)
Set the Alignment.
virtual size_t getAlignment() const
Get the Alignment.
virtual void notifyChangeDeserialized(const std::string &)
Forwarding the notification.
Definition datamodel_types.h:723
observable DataDefinition object class for a Element of a StructType.
Definition datamodel_types.h:736
const std::string & getDefault() const
Get the Default object.
void setName(const std::string &name)
Set the Name.
void setOffset(const std::string &offset)
Set the Offset (for information only)
void setArraySize(const ArraySize &array_size)
Set the Array Size.
void setMin(const std::string &minimum_value)
Set the Min (for information only).
const std::string & getScale() const
Get the Scale (for information only)
bool operator==(const Element &other) const
equality operator.
const std::string & getOffset() const
Get the Offset (for information only)
void setMax(const std::string &maximum_value)
Set the Max (for information only).
const std::string & getDescription() const
Get the Description.
const std::string & getComment() const
Get the Comment.
Element & operator=(Element &&other) noexcept
move assignment operator
void setUnitName(const std::string &unit_name)
Set the Unit Name.
bool operator!=(const Element &other) const
non equality operator.
void setComment(const std::string &comment)
Set the Comment object.
const std::string & getUnitName() const
Get the Unit Name.
void setScale(const std::string &scale)
Set the Scale (for information only)
const std::string & getName() const
Get the Name.
Element(Element &&other)
move CTOR
void setTypeName(const std::string &type_name)
Set the Type Name.
void setValue(const std::string &value)
Set the Value This is only valid if the data type is set to an enum type where this constant value is...
void setDefault(const std::string &default_value)
Set the Default Value. This is only valid if the default value is convertable to the datatype used.
Element(const Element &other)
copy CTOR
const std::string & getValue() const
Get the value.
void setDescription(const std::string &description)
Set the Description.
Element(std::string name, std::string type_name, DeserializedInfo deserialized_info, SerializedInfo serialized_info, dd::ArraySize array_size={}, std::string description={}, std::string comment={}, std::string unit_name={}, std::string value={}, std::string minimum_value={}, std::string maximum_value={}, std::string default_value={}, std::string scale={}, std::string offset={})
CTOR.
Element & operator=(const Element &other)
copy assignment operator
Element(std::string name, std::string type_name, DeserializedInfo deserialized_info, SerializedInfo serialized_info, dd::ArraySize array_size, std::string description, std::string comment, std::string unit_name, std::string value, std::string minimum_value, std::string maximum_value, std::string default_value, std::string scale, std::string offset, std::string valid_element_count)
CTOR.
const std::string & getMin() const
Get the Min (for information only). This was introduced in DDL 3.0.
const std::string & getTypeName() const
Get the Type Name.
const std::string & getMax() const
Get the Max (for information only). This was introduced in DDL 3.0.
const std::string & getValidElementCount() const
Get the Valid Element Count element name.
const ArraySize & getArraySize() const
Get the Array Size.
void setValidElementCount(const std::string &valid_element_count)
Set the Valid Element Count element name. This value is usually only used if array size is greater th...
OptionalSize getNumBits() const
Get the Num Bits (if set)
SerializedInfo(const std::initializer_list< size_t > &intializer)
CTOR with string list initializing.
OptionalSize getBitPos() const
Get the Bit Pos (if set)
void setNumBits(OptionalSize num_bits)
Set the Num Bits.
bool operator==(const SerializedInfo &other) const
equality operator.
SerializedInfo & operator=(const SerializedInfo &)=default
copy assignment operator
SerializedInfo()
default CTOR.
Definition datamodel_types.h:499
OptionalSize getBytePos() const
Get the Byte Pos.
virtual void notifyChangeSerialized(const std::string &)
notification forwarding of serialized information to the StructType::Element object.
Definition datamodel_types.h:632
SerializedInfo(const SerializedInfo &)=default
copy CTOR
SerializedInfo(SerializedInfo &&)=default
move CTOR
SerializedInfo(OptionalSize byte_pos, ByteOrder byte_order=ByteOrderDefault::getPlatformDefault(), OptionalSize bit_pos={}, OptionalSize num_bits={})
CTOR.
void setBytePos(OptionalSize byte_pos, bool prevent_notification=false)
Set the Byte Pos.
void setBitPos(OptionalSize bit_pos, bool prevent_notification=false)
Sets the Bit Pos.
SerializedInfo & operator=(SerializedInfo &&)=default
move assignment operator
void setByteOrder(ByteOrder byte_order)
Set the Byte Order.
ByteOrder getByteOrder() const
Get the Byte Order.
observable DataDefinition object class to describe StructType.
Definition datamodel_types.h:453
StructType(const std::string &name, const std::string &struct_version="1", OptionalSize alignment={}, const std::string &comment={}, dd::Version ddl_version=dd::Version(0, 0), const std::vector< Element > &elements={})
CTOR.
void setComment(const std::string &comment)
Set the Comment.
StructType(const StructType &other)
copy CTOR
virtual ~StructType()=default
DTOR.
utility::TypeAccessList< Element, StructType > Elements
container of elements for the StructType::Element.
Definition datamodel_types.h:1177
StructType()=delete
no default CTOR
Elements & getElements()
Get the Elements object.
void setAlignment(OptionalSize alignment)
Set the Alignment.
const std::string & getVersion() const
Get the set Version (the struct version! Not the DDL Version!)
bool operator!=(const StructType &other) const
non equality operator.
StructType & operator=(const StructType &other)
copy assignment operator
void setVersion(const std::string &struct_version)
Get the Version (the struct version! Not the DDL Version!)
OptionalSize getAlignment() const
Get the Alignment (if set)
void setName(const std::string &name) override
Set the Name.
StructType & operator=(StructType &&other)
move assignment operator.
const Elements & getElements() const
Get the Elements object.
StructType(StructType &&other)
move CTOR.
void setLanguageVersion(const Version &ddl_version)
Set the Language Version.
TypeOfType getTypeOfType() const override
Get the Type Of the Type (data_type, enum_type, struct_type, stream_meta_type).
const std::string & getComment() const
Get the Comment.
bool operator==(const StructType &other) const
equality operator.
Version getLanguageVersion() const
Get the set language Version.
virtual TypeOfType getTypeOfType() const =0
Get the Type Of the Type (data_type, enum_type, struct_type, stream_meta_type).
std::string _name
name storage value
Definition datamodel_types.h:103
virtual void setName(const std::string &name)
Set the Name.
virtual ~TypeBase()=default
DTOR.
TypeBase(TypeBase &&)=default
move CTOR
TypeBase(std::string name)
CTOR.
TypeBase & operator=(const TypeBase &)=default
copy assignment operator
TypeBase & operator=(TypeBase &&)=default
move assignment operator
TypeBase(const TypeBase &)=default
copy CTOR
const std::string & getName() const
Get the Name.
Utility class for observable named items where the order is important.
Definition access_list.h:87
Element access_type
Definition access_list.h:90
std::unordered_map< std::string_view, value_type > container_named_type
Definition access_list.h:96
Utility class for observable named items where the order is NOT important.
Definition access_map.h:79
Element access_type
Definition access_map.h:82
definition of the datamodel namespace
Definition datamodel_base.h:28
utility::ModelSubjectUtility< TYPE, ModelEventCode > ModelSubject
Subject template class that is observable.
Definition datamodel_base.h:187
ModelEventCode
Model event code for the data model observer.
Definition datamodel_base.h:34
Definition datamodel_keyvalue.h:160
ModelSubjectUtility< T, TypeAccessMapEventCode > TypeAccessMapSubject
helper template to observe map content.
Definition access_map.h:61
ModelSubjectUtility< T, TypeAccessListEventCode > TypeAccessListSubject
helper template to observe list content.
Definition access_list.h:69
TypeAccessListEventCode
Internal event code to inform the parent DD Object about the change of an item within the list.
Definition access_list.h:43
TypeAccessMapEventCode
Internal event code to inform the parent DD Object about the change of an item within the list.
Definition access_map.h:37
definition of the dd namespace
Definition datamodel_base.h:26
ByteOrder
Definition dd_common_types.h:152
@ e1
Definition dd_common_types.h:100
utility::Optional< size_t > OptionalSize
Optional Size Type.
Definition dd_common_types.h:38
TypeOfType
Classification of a Type.
Definition dd_common_types.h:44
@ invalid_type
the type is unknown
Definition dd_common_types.h:49
definition of the ddl namespace
Definition codec.h:21
helper union class for an element that uses one of the datatype, enumtype, structtype
Definition datamodel_types.h:1374
std::shared_ptr< datamodel::StructType > _struct_type
is set to an valid reference if the type is struct_type!
Definition datamodel_types.h:1391
std::shared_ptr< datamodel::EnumType > _enum_type
is set to an valid reference if the type is enum_type!
Definition datamodel_types.h:1387
std::shared_ptr< datamodel::DataType > _data_type
is set to an valid reference if the type is data_type OR enum_type!
Definition datamodel_types.h:1383
TypeOfType _type_of_type
the type of the type used (if valid)
Definition datamodel_types.h:1379
static std::string getDifference(const ddl::dd::datamodel::DataType &left, const ddl::dd::datamodel::DataType &right)
Get the Difference.
static constexpr auto _other_types
validation other type
Definition datamodel_types.h:1407
static constexpr auto _other_types
validation other type
Definition datamodel_types.h:1423
static std::string getDifference(const ddl::dd::datamodel::EnumType &left, const ddl::dd::datamodel::EnumType &right)
Get the Difference.
static std::string getDifference(const ddl::dd::datamodel::StructType &left, const ddl::dd::datamodel::StructType &right)
Get the Difference.
static constexpr auto _other_types
validation other type
Definition datamodel_types.h:1439
static constexpr auto _other_types
validation other type
Definition datamodel_types.h:1455
static std::string getDifference(const ddl::dd::datamodel::StructType::Element &left, const ddl::dd::datamodel::StructType::Element &right)
Get the Difference.
Validation helper template for clear excpetion messages.
Definition access_validation.h:37