ADTF
Loading...
Searching...
No Matches
ddcompare.h
Go to the documentation of this file.
1
13
14#ifndef DDCOMPARE_H_INCLUDED
15#define DDCOMPARE_H_INCLUDED
16
17#include <a_util/result.h>
18#include <ddl/dd/dd.h>
20
21namespace ddl {
25class DDCompare {
26public:
55
60 icf_none = 0x00,
61 icf_memory = 0x01,
64 0x04,
66 0x08,
67 icf_units = 0x10,
68 icf_comments = 0x20,
70 icf_subset = 0x80,
72 0x0100,
75 0x0400,
77 0x1FF
78 };
79
80public:
102 static a_util::result::Result isBinaryEqual(const std::string& type1,
103 const std::string& desc1,
104 const std::string& type2,
105 const std::string& desc2,
106 bool is_subset = true);
107
132 static a_util::result::Result isBinaryEqual(const std::string& type1,
133 const std::string& desc1,
135 const std::string& type2,
136 const std::string& desc2,
138 bool is_subset = true);
139
161 static a_util::result::Result isBinaryEqual(const std::string& type1,
162 const dd::DataDefinition& desc1,
163 const std::string& type2,
164 const dd::DataDefinition& desc2,
165 bool is_subset = true);
166
191 static a_util::result::Result isBinaryEqual(const std::string& type1,
192 const dd::DataDefinition& desc1,
194 const std::string& type2,
195 const dd::DataDefinition& desc2,
197 bool is_subset = true);
198
199 // main ddl entities comparisons
200
212 static a_util::result::Result isEqualPrefix(const std::string& prefix1,
213 const std::string& desc1,
214 const std::string& prefix2,
215 const std::string& desc2,
216 uint32_t flags = icf_none);
217
228 const dd::UnitPrefix& prefix2,
229 uint32_t flags = icf_none);
230
242 static a_util::result::Result isEqualUnit(const std::string& unit1,
243 const std::string& desc1,
244 const std::string& unit2,
245 const std::string& desc2,
246 uint32_t flags = icf_none);
247
260 const dd::DataDefinition& source_dd_of_unit1,
261 const dd::Unit& unit2,
262 const dd::DataDefinition& source_dd_of_unit2,
263 uint32_t flags = icf_none);
264
275 const dd::BaseUnit& base_unit2,
276 uint32_t flags = icf_none);
277
290 static a_util::result::Result isEqualType(const std::string& type1,
291 const std::string& desc1,
292 const std::string& type2,
293 const std::string& desc2,
294 uint32_t flags = icf_memory);
295
307 const dd::DataType& type2,
308 uint32_t flags = icf_memory);
309
325 const dd::DataDefinition& source_dd_of_enum1,
326 const dd::EnumType& enum2,
327 const dd::DataDefinition& source_dd_of_enum2,
328 uint32_t flags = icf_memory);
329
345 const dd::DataDefinition& source_dd_of_type1,
346 const dd::StructType& type2,
347 const dd::DataDefinition& source_dd_of_type2,
348 uint32_t flags = icf_memory);
349
361 static a_util::result::Result isEqualStream(const std::string& stream1,
362 const std::string& desc1,
363 const std::string& stream2,
364 const std::string& desc2,
365 uint32_t flags = icf_memory);
366
381 const dd::DataDefinition& source_dd_of_stream1,
382 const dd::Stream& stream2,
383 const dd::DataDefinition& source_dd_of_stream2,
384 uint32_t flags = icf_memory);
385
399 static a_util::result::Result isEqual(const dd::StreamMetaType& stream_meta_type1,
400 const dd::DataDefinition& source_dd_of_stream_meta_type1,
401 const dd::StreamMetaType& stream_meta_type2,
402 const dd::DataDefinition& source_dd_of_stream_meta_type2,
403 uint32_t flags = icf_memory);
404
405 // sub-item comparison
406
418 const dd::datamodel::KeyValuePair& key_value_pair2,
419 uint32_t flags = icf_none);
420
435 const dd::DataDefinition& source_dd_of_ref_unit1,
436 const dd::Unit::RefUnit& ref_unit2,
437 const dd::DataDefinition& source_dd_of_ref_unit2,
438 uint32_t flags = icf_none);
439
456 const dd::DataDefinition& source_dd_of_elem1,
457 const dd::StructType::Element& elem2,
458 const dd::DataDefinition& source_dd_of_elem2,
459 uint32_t flags = icf_none);
460
475 const dd::DataDefinition& source_dd_of_stream_struct1,
476 const dd::Stream::Struct& stream_struct2,
477 const dd::DataDefinition& source_dd_of_stream_struct2,
478 uint32_t flags = icf_none);
479
480 // description based methods
481
491 static a_util::result::Result isEqual(const std::string& desc1,
492 const std::string& desc2,
493 uint32_t flags = dcf_all | dcf_subset);
494
505 const dd::DataDefinition& desc2,
506 uint32_t flags = dcf_all | dcf_subset);
507};
508
509} // namespace ddl
510
511#endif // DDCOMPARE_H_INCLUDED
Definition result_type_decl.h:34
Definition ddcompare.h:25
static a_util::result::Result isEqual(const dd::BaseUnit &base_unit1, const dd::BaseUnit &base_unit2, uint32_t flags=icf_none)
isEqual checks whether two unit descriptions are equal.
static a_util::result::Result isEqual(const dd::Unit::RefUnit &ref_unit1, const dd::DataDefinition &source_dd_of_ref_unit1, const dd::Unit::RefUnit &ref_unit2, const dd::DataDefinition &source_dd_of_ref_unit2, uint32_t flags=icf_none)
isEqual checks whether two reference units are equal.
static a_util::result::Result isBinaryEqual(const std::string &type1, const std::string &desc1, ddl::DataRepresentation rep1, const std::string &type2, const std::string &desc2, ddl::DataRepresentation rep2, bool is_subset=true)
isBinaryEqual checks whether two type descriptions describe the same binary data layout....
static a_util::result::Result isEqual(const dd::StructType::Element &elem1, const dd::DataDefinition &source_dd_of_elem1, const dd::StructType::Element &elem2, const dd::DataDefinition &source_dd_of_elem2, uint32_t flags=icf_none)
isEqual checks whether two struct elements are equal. Note that in case of dynamic elements only the ...
static a_util::result::Result isEqualPrefix(const std::string &prefix1, const std::string &desc1, const std::string &prefix2, const std::string &desc2, uint32_t flags=icf_none)
isEqualPrefix checks whether two prefix descriptions are equal.
static a_util::result::Result isEqualType(const std::string &type1, const std::string &desc1, const std::string &type2, const std::string &desc2, uint32_t flags=icf_memory)
isEqual checks whether two type (POD/enum/struct) descriptions are equal. When this is true for a str...
static a_util::result::Result isEqual(const dd::StructType &type1, const dd::DataDefinition &source_dd_of_type1, const dd::StructType &type2, const dd::DataDefinition &source_dd_of_type2, uint32_t flags=icf_memory)
isEqual checks whether two type (POD/enum/struct) descriptions are equal When this is true for a stru...
static a_util::result::Result isEqualStream(const std::string &stream1, const std::string &desc1, const std::string &stream2, const std::string &desc2, uint32_t flags=icf_memory)
isEqual checks whether two stream descriptions are equal.
static a_util::result::Result isEqual(const dd::DataType &type1, const dd::DataType &type2, uint32_t flags=icf_memory)
isEqual checks whether two type (POD) descriptions are equal When this is true for a struct then it a...
static a_util::result::Result isEqualUnit(const std::string &unit1, const std::string &desc1, const std::string &unit2, const std::string &desc2, uint32_t flags=icf_none)
isEqualUnit checks whether two unit descriptions are equal.
static a_util::result::Result isBinaryEqual(const std::string &type1, const dd::DataDefinition &desc1, ddl::DataRepresentation rep1, const std::string &type2, const dd::DataDefinition &desc2, ddl::DataRepresentation rep2, bool is_subset=true)
isBinaryEqual checks whether two type descriptions describe the same binary data layout....
static a_util::result::Result isEqual(const dd::Unit &unit1, const dd::DataDefinition &source_dd_of_unit1, const dd::Unit &unit2, const dd::DataDefinition &source_dd_of_unit2, uint32_t flags=icf_none)
isEqual checks whether two unit descriptions are equal.
static a_util::result::Result isEqual(const dd::EnumType &enum1, const dd::DataDefinition &source_dd_of_enum1, const dd::EnumType &enum2, const dd::DataDefinition &source_dd_of_enum2, uint32_t flags=icf_memory)
isEqual checks whether two type (enum) descriptions are equal When this is true for a struct then it ...
static a_util::result::Result isEqual(const dd::Stream::Struct &stream_struct1, const dd::DataDefinition &source_dd_of_stream_struct1, const dd::Stream::Struct &stream_struct2, const dd::DataDefinition &source_dd_of_stream_struct2, uint32_t flags=icf_none)
isEqual checks whether two stream structs equal.
static a_util::result::Result isEqual(const dd::Stream &stream1, const dd::DataDefinition &source_dd_of_stream1, const dd::Stream &stream2, const dd::DataDefinition &source_dd_of_stream2, uint32_t flags=icf_memory)
isEqual checks whether two stream descriptions are equal.
static a_util::result::Result isEqual(const std::string &desc1, const std::string &desc2, uint32_t flags=dcf_all|dcf_subset)
isEqual checks whether two descriptions are equal.
static a_util::result::Result isBinaryEqual(const std::string &type1, const std::string &desc1, const std::string &type2, const std::string &desc2, bool is_subset=true)
isBinaryEqual checks whether two type descriptions describe the same binary data layout in deserializ...
static a_util::result::Result isEqual(const dd::datamodel::KeyValuePair &key_value_pair1, const dd::datamodel::KeyValuePair &key_value_pair2, uint32_t flags=icf_none)
isEqual checks whether two external declarations of header/elements of enum/properties of streammetat...
static a_util::result::Result isBinaryEqual(const std::string &type1, const dd::DataDefinition &desc1, const std::string &type2, const dd::DataDefinition &desc2, bool is_subset=true)
isBinaryEqual checks whether two type descriptions describe the same binary data layout in deserializ...
static a_util::result::Result isEqual(const dd::StreamMetaType &stream_meta_type1, const dd::DataDefinition &source_dd_of_stream_meta_type1, const dd::StreamMetaType &stream_meta_type2, const dd::DataDefinition &source_dd_of_stream_meta_type2, uint32_t flags=icf_memory)
isEqual checks whether two stream meta types descriptions are equal.
static a_util::result::Result isEqual(const dd::DataDefinition &desc1, const dd::DataDefinition &desc2, uint32_t flags=dcf_all|dcf_subset)
isEqual checks whether two descriptions are equal.
DescriptionCheckFlags
Definition ddcompare.h:30
@ dcf_descriptions
Compares the description attributes as well.
Definition ddcompare.h:43
@ dcf_base_units
Compare baseunits.
Definition ddcompare.h:36
@ dcf_structs
Compare structs.
Definition ddcompare.h:34
@ dcf_visualization_attributes
Check attributes relevant for visualization (min/max/default/scale/offset)
Definition ddcompare.h:45
@ dcf_data_types
Compare datatypes.
Definition ddcompare.h:31
@ dcf_header
Compare the header as well.
Definition ddcompare.h:44
@ dcf_comments
Compares the comment attributes as well.
Definition ddcompare.h:42
@ dcf_subset
Checks whether the first description is a subset of the second.
Definition ddcompare.h:40
@ dcf_everything
Check everything (all flags except the "No" variants)
Definition ddcompare.h:53
@ dcf_stream_meta_types
Compare stream_meta_types.
Definition ddcompare.h:38
@ dcf_all
Compare all elements (see above)
Definition ddcompare.h:39
@ dcf_no_header_dates
Do not compare header dates (date_creation, date_change)
Definition ddcompare.h:50
@ dcf_no_enum_values_check
Do not compare enum values.
Definition ddcompare.h:47
@ dcf_no_recursion
Do not compare sub-entities (elements, ref units, stream structs, ...)
Definition ddcompare.h:48
@ dcf_prefixes
Compare prefixes.
Definition ddcompare.h:37
@ dcf_units
Compare units.
Definition ddcompare.h:32
@ dcf_streams
Compare streams.
Definition ddcompare.h:35
@ dcf_versions
Compares the version attributes as well.
Definition ddcompare.h:41
@ dcf_enums
Compare enums.
Definition ddcompare.h:33
static a_util::result::Result isEqual(const dd::UnitPrefix &prefix1, const dd::UnitPrefix &prefix2, uint32_t flags=icf_none)
isEqual checks whether two prefix descriptions are equal.
ItemCheckFlags
Definition ddcompare.h:59
@ icf_memory
Compare the in-memory representation.
Definition ddcompare.h:61
@ icf_units
Compare the units as well.
Definition ddcompare.h:67
@ icf_descriptions
Compare the comments as well.
Definition ddcompare.h:69
@ icf_everything
Check everything (mind no_recursion and no_enum is not changed here)
Definition ddcompare.h:76
@ icf_names
Compare the names of structs and their elements and stream meta types parent.
Definition ddcompare.h:63
@ icf_versions
Compare the versions of all elements and structs and stream meta types.
Definition ddcompare.h:65
@ icf_visualizations_attributes
Check attributes relevant for visualization (min/max/default/scale/offset)
Definition ddcompare.h:71
@ icf_no_enum_values_check
Do not compare enum values.
Definition ddcompare.h:73
@ icf_subset
Check if the first item is a subset of the second.
Definition ddcompare.h:70
@ icf_comments
Compare the comments as well.
Definition ddcompare.h:68
@ icf_serialized
Compare the serialized representation.
Definition ddcompare.h:62
@ icf_no_recursion
Do not compare sub-entities (elements, ref units, stream structs, ...)
Definition ddcompare.h:74
The Data Definiton class uses the validation model to keep a Data Definition datamodel (ddl::dd::data...
Definition dd.h:92
observable KeyValuePair
Definition datamodel_keyvalue.h:33
DataDefinition object class of datamodel to hold a streamstruct.
Definition datamodel_streams.h:80
observable DataDefinition object class for a Element of a StructType.
Definition datamodel_types.h:736
datamodel for the refUnit
Definition datamodel_units.h:377
datamodel::Stream Stream
Definition dd.h:67
datamodel::DataType DataType
Definition dd.h:51
datamodel::EnumType EnumType
Definition dd.h:55
datamodel::StructType StructType
Definition dd.h:59
datamodel::Unit Unit
Definition dd.h:47
datamodel::UnitPrefix UnitPrefix
Definition dd.h:43
datamodel::StreamMetaType StreamMetaType
Definition dd.h:63
datamodel::BaseUnit BaseUnit
Definition dd.h:39
definition of the ddl namespace
Definition codec.h:21
DataRepresentation
Definition data_representation.h:25