ADTF  3.18.2
cDDLCompare

Utility class to compare media descriptions. More...

Public Types

enum  tDescriptionCheckFlags {
  DCF_Everything = 0x00 , DCF_DataTypes = 0x01 , DCF_Units = 0x02 , DCF_Enums = 0x04 ,
  DCF_Structs = 0x08 , DCF_Streams = 0x10 , DCF_BaseUnits = 0x20 , DCF_Prefixes = 0x40 ,
  DCF_All = 0xFF , DCF_SubSet = 0x0100 , DCF_Versions = 0x0200 , DCF_Comments = 0x0400 ,
  DCF_Descriptions = 0x0800 , DCF_Header = 0x1000 , DCF_VisualizationAttributes = 0x2000 , DCF_NoEnumValuesCheck = 0x010000 ,
  DCF_NoRecursion = 0x020000
}
 Flags for the description based IsEqual methods. More...
 
enum  tItemCheckFlags {
  ICF_None = 0x00 , ICF_Memory = 0x01 , ICF_Serialized = 0x02 , ICF_Names = 0x04 ,
  ICF_Versions = 0x08 , ICF_Units = 0x10 , ICF_Comments = 0x20 , ICF_Descriptions = 0x40 ,
  ICF_SubSet = 0x80 , ICF_VisualizationAttributes = 0x0100 , ICF_NoEnumValuesCheck = 0x0200 , ICF_NoRecursion = 0x0400
}
 Flags for the item based IsEqual methods. More...
 

Static Public Member Functions

static tResult IsBinaryEqual (const A_UTILS_NS::cString &strType1, const A_UTILS_NS::cString &strDesc1, const A_UTILS_NS::cString &strType2, const A_UTILS_NS::cString &strDesc2, bool bIsSubSet=true)
 IsBinaryEqual checks whether two type descriptions describe the same binary data layout. More...
 
static tResult IsBinaryEqual (const A_UTILS_NS::cString &strType1, const cDDLDescription *pDesc1, const A_UTILS_NS::cString &strType2, const cDDLDescription *pDesc2, bool bIsSubSet=true)
 IsBinaryEqual checks whether two type descriptions describe the same binary data layout. More...
 
static tResult IsEqualPrefix (const A_UTILS_NS::cString &strPrefix1, const A_UTILS_NS::cString &strDesc1, const A_UTILS_NS::cString &strPrefix2, const A_UTILS_NS::cString &strDesc2, uint32_t ui32Flags=ICF_None)
 IsEqualPrefix checks whether two prefix descriptions are equal. More...
 
static tResult IsEqual (const cDDLPrefix *pPrefix1, const cDDLPrefix *pPrefix2, uint32_t ui32Flags=ICF_None)
 IsEqual checks whether two prefix descriptions are equal. More...
 
static tResult IsEqualUnit (const A_UTILS_NS::cString &strUnit1, const A_UTILS_NS::cString &strDesc1, const A_UTILS_NS::cString &strUnit2, const A_UTILS_NS::cString &strDesc2, uint32_t ui32Flags=ICF_None)
 IsEqualUnit checks whether two unit descriptions are equal. More...
 
static tResult IsEqual (const IDDLUnit *pUnit1, const IDDLUnit *pUnit2, uint32_t ui32Flags=ICF_None)
 IsEqual checks whether two unit descriptions are equal. More...
 
static tResult IsEqualType (const A_UTILS_NS::cString &strType1, const A_UTILS_NS::cString &strDesc1, const A_UTILS_NS::cString &strType2, const A_UTILS_NS::cString &strDesc2, uint32_t ui32Flags=ICF_Memory)
 IsEqual checks whether two type (POD/enum/struct) descriptions are equal. More...
 
static tResult IsEqual (const IDDLDataType *pType1, const IDDLDataType *pType2, uint32_t ui32Flags=ICF_Memory)
 IsEqual checks whether two type (POD/enum/struct) descriptions are equal When this is true for a struct then it also implies IsBinaryEqual is true. More...
 
static tResult IsEqualStream (const A_UTILS_NS::cString &strStream1, const A_UTILS_NS::cString &strDesc1, const A_UTILS_NS::cString &strStream2, const A_UTILS_NS::cString &strDesc2, uint32_t ui32Flags=ICF_Memory)
 IsEqual checks whether two stream descriptions are equal. More...
 
static tResult IsEqual (const cDDLStream *pStream1, const cDDLStream *pStream2, uint32_t ui32Flags=ICF_Memory)
 IsEqual checks whether two stream descriptions are equal. More...
 
static tResult IsEqual (const cDDLExtDeclaration *pExt1, const cDDLExtDeclaration *pExt2, uint32_t ui32Flags=ICF_None)
 IsEqual checks whether two external declarations are equal. More...
 
static tResult IsEqual (const cDDLRefUnit *pRefUnit1, const cDDLRefUnit *pRefUnit2, uint32_t ui32Flags=ICF_None)
 IsEqual checks whether two reference units are equal. More...
 
static tResult IsEqual (const cDDLElement *pElem1, const cDDLElement *pElem2, uint32_t ui32Flags=ICF_None)
 IsEqual checks whether two struct elements are equal. More...
 
static tResult IsEqual (const cDDLStreamStruct *pStreamStruct1, const cDDLStreamStruct *pStreamStruct2, uint32_t ui32Flags=ICF_None)
 IsEqual checks whether two stream structs equal. More...
 
static tResult IsEqual (const A_UTILS_NS::cString &strDesc1, const A_UTILS_NS::cString &strDesc2, uint32_t ui32Flags=DCF_All|DCF_SubSet)
 IsEqual checks whether two descriptions are equal. More...
 
static tResult IsEqual (const cDDLDescription *pDesc1, const cDDLDescription *pDesc2, uint32_t ui32Flags=DCF_All|DCF_SubSet)
 IsEqual checks whether two descriptions are equal. More...
 

Detailed Description

Utility class to compare media descriptions.

Definition at line 16 of file ddlcompare.h.

Member Enumeration Documentation

◆ tDescriptionCheckFlags

Flags for the description based IsEqual methods.

Enumerator
DCF_Everything 

Check everything.

DCF_DataTypes 

Compare datatypes.

DCF_Units 

Compare units.

DCF_Enums 

Compare enums.

DCF_Structs 

Compare structs.

DCF_Streams 

Compare streams.

DCF_BaseUnits 

Compare baseunits.

DCF_Prefixes 

Compare prefixes.

DCF_All 

Compare all elements (see above)

DCF_SubSet 

Checks whether the first description is a subset of the second.

DCF_Versions 

Compares the version attributes as well.

DCF_Comments 

Compares the comment attributes as well.

DCF_Descriptions 

Compares the description attributes as well.

DCF_Header 

Compare the header as well.

DCF_VisualizationAttributes 

Check attributes relevant for visualization (min/max/default/scale/offset)

DCF_NoEnumValuesCheck 

Do not compare enum values.

DCF_NoRecursion 

Do not compare sub-entities (elements, ref units, stream structs, ...)

Definition at line 22 of file ddlcompare.h.

◆ tItemCheckFlags

Flags for the item based IsEqual methods.

Enumerator
ICF_Memory 

Compare the in-memory representation.

ICF_Serialized 

Compare the serialized representation.

ICF_Names 

Compare the names of structs and their elements.

ICF_Versions 

Compare the versions of all elements and structs.

ICF_Units 

Compare the units as well.

ICF_Comments 

Compare the comments as well.

ICF_Descriptions 

Compare the comments as well.

ICF_SubSet 

Check if the first item is a subset of the second.

ICF_VisualizationAttributes 

Check attributes relevant for visualization (min/max/default/scale/offset)

ICF_NoEnumValuesCheck 

Do not compare enum values.

ICF_NoRecursion 

Do not compare sub-entities (elements, ref units, stream structs, ...)

Definition at line 46 of file ddlcompare.h.

Member Function Documentation

◆ IsBinaryEqual() [1/2]

static tResult IsBinaryEqual ( const A_UTILS_NS::cString strType1,
const A_UTILS_NS::cString strDesc1,
const A_UTILS_NS::cString strType2,
const A_UTILS_NS::cString strDesc2,
bool  bIsSubSet = true 
)
static

IsBinaryEqual checks whether two type descriptions describe the same binary data layout.

Parameters
[in]strType1The name of the first type.
[in]strDesc1The description that has strType1.
[in]strType2The name of the second type.
[in]strDesc2The description that has strType2.
[in]bIsSubSetIf true then the method checks if the first type is a subset of the second (starting at offset 0, possibly with smaller size).
Return values
ERR_NOERRORThe description describe the same layout
ERR_FAILEDThe description do NOT describe the same layout
Standardresult (other DDL parsing errors etc.)

◆ IsBinaryEqual() [2/2]

static tResult IsBinaryEqual ( const A_UTILS_NS::cString strType1,
const cDDLDescription pDesc1,
const A_UTILS_NS::cString strType2,
const cDDLDescription pDesc2,
bool  bIsSubSet = true 
)
static

IsBinaryEqual checks whether two type descriptions describe the same binary data layout.

Parameters
[in]strType1The name of the first type.
[in]pDesc1The description that has strType1.
[in]strType2The name of the second type.
[in]pDesc2The description that has strType2.
[in]bIsSubSetIf true then the method checks if the first type is a subset of the second (starting at offset 0, possibly with smaller size).
Return values
ERR_NOERRORThe description describe the same layout
ERR_FAILEDThe description do NOT describe the same layout
Standardresult (other DDL parsing errors etc.)

◆ IsEqual() [1/10]

static tResult IsEqual ( const A_UTILS_NS::cString strDesc1,
const A_UTILS_NS::cString strDesc2,
uint32_t  ui32Flags = DCF_All|DCF_SubSet 
)
static

IsEqual checks whether two descriptions are equal.

Parameters
[in]strDesc1The first description.
[in]strDesc2The second description.
[in]ui32FlagsFlags that specifiy what should be checked, see tDescriptionCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)

◆ IsEqual() [2/10]

static tResult IsEqual ( const cDDLDescription pDesc1,
const cDDLDescription pDesc2,
uint32_t  ui32Flags = DCF_All|DCF_SubSet 
)
static

IsEqual checks whether two descriptions are equal.

Parameters
[in]pDesc1The first description.
[in]pDesc2The second description.
[in]ui32FlagsFlags that specifiy what should be checked, see tDescriptionCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)

◆ IsEqual() [3/10]

static tResult IsEqual ( const cDDLElement pElem1,
const cDDLElement pElem2,
uint32_t  ui32Flags = ICF_None 
)
static

IsEqual checks whether two struct elements are equal.

Note that in case of dynamic elements only the name of the array size specifier can be checked. Compare the whole struct if you need a more tourough comparison.

Parameters
[in]pElem1The first element.
[in]pElem2The second element.
[in]ui32FlagsFlags that specifiy what should be checked, see tItemCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)

◆ IsEqual() [4/10]

static tResult IsEqual ( const cDDLExtDeclaration pExt1,
const cDDLExtDeclaration pExt2,
uint32_t  ui32Flags = ICF_None 
)
static

IsEqual checks whether two external declarations are equal.

Parameters
[in]pExt1The first declaration.
[in]pExt2The second declaration.
[in]ui32FlagsFlags that specifiy what should be checked, see tItemCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)

◆ IsEqual() [5/10]

static tResult IsEqual ( const cDDLPrefix pPrefix1,
const cDDLPrefix pPrefix2,
uint32_t  ui32Flags = ICF_None 
)
static

IsEqual checks whether two prefix descriptions are equal.

Parameters
[in]pPrefix1The first prefix.
[in]pPrefix2The second prefix.
[in]ui32FlagsFlags that specifiy what should be checked, see tItemCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)

◆ IsEqual() [6/10]

static tResult IsEqual ( const cDDLRefUnit pRefUnit1,
const cDDLRefUnit pRefUnit2,
uint32_t  ui32Flags = ICF_None 
)
static

IsEqual checks whether two reference units are equal.

Parameters
[in]pRefUnit1The first unit.
[in]pRefUnit2The second unit.
[in]ui32FlagsFlags that specifiy what should be checked, see tItemCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)

◆ IsEqual() [7/10]

static tResult IsEqual ( const cDDLStream pStream1,
const cDDLStream pStream2,
uint32_t  ui32Flags = ICF_Memory 
)
static

IsEqual checks whether two stream descriptions are equal.

Parameters
[in]pStream1The first stream.
[in]pStream2The second stream.
[in]ui32FlagsFlags that specifiy what should be checked, see tItemCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)

◆ IsEqual() [8/10]

static tResult IsEqual ( const cDDLStreamStruct pStreamStruct1,
const cDDLStreamStruct pStreamStruct2,
uint32_t  ui32Flags = ICF_None 
)
static

IsEqual checks whether two stream structs equal.

Parameters
[in]pStreamStruct1The first struct.
[in]pStreamStruct2The second struct.
[in]ui32FlagsFlags that specifiy what should be checked, see tItemCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)

◆ IsEqual() [9/10]

static tResult IsEqual ( const IDDLDataType pType1,
const IDDLDataType pType2,
uint32_t  ui32Flags = ICF_Memory 
)
static

IsEqual checks whether two type (POD/enum/struct) descriptions are equal When this is true for a struct then it also implies IsBinaryEqual is true.

Parameters
[in]pType1The first type.
[in]pType2The second type.
[in]ui32FlagsFlags that specifiy what should be checked, see tItemCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)

◆ IsEqual() [10/10]

static tResult IsEqual ( const IDDLUnit pUnit1,
const IDDLUnit pUnit2,
uint32_t  ui32Flags = ICF_None 
)
static

IsEqual checks whether two unit descriptions are equal.

Parameters
[in]pUnit1The first unit.
[in]pUnit2The second unit.
[in]ui32FlagsFlags that specifiy what should be checked, see tItemCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)

◆ IsEqualPrefix()

static tResult IsEqualPrefix ( const A_UTILS_NS::cString strPrefix1,
const A_UTILS_NS::cString strDesc1,
const A_UTILS_NS::cString strPrefix2,
const A_UTILS_NS::cString strDesc2,
uint32_t  ui32Flags = ICF_None 
)
static

IsEqualPrefix checks whether two prefix descriptions are equal.

Parameters
[in]strPrefix1The name of the first prefix.
[in]strDesc1The description that has strPrefix1.
[in]strPrefix2The name of the second prefix.
[in]strDesc2The description that has strPrefix2.
[in]ui32FlagsFlags that specifiy what should be checked, see tItemCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)

◆ IsEqualStream()

static tResult IsEqualStream ( const A_UTILS_NS::cString strStream1,
const A_UTILS_NS::cString strDesc1,
const A_UTILS_NS::cString strStream2,
const A_UTILS_NS::cString strDesc2,
uint32_t  ui32Flags = ICF_Memory 
)
static

IsEqual checks whether two stream descriptions are equal.

Parameters
[in]strStream1The name of the first stream.
[in]strDesc1The description that has strStream1.
[in]strStream2The name of the second stream.
[in]strDesc2The description that has strStream2.
[in]ui32FlagsFlags that specifiy what should be checked, see tItemCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)

◆ IsEqualType()

static tResult IsEqualType ( const A_UTILS_NS::cString strType1,
const A_UTILS_NS::cString strDesc1,
const A_UTILS_NS::cString strType2,
const A_UTILS_NS::cString strDesc2,
uint32_t  ui32Flags = ICF_Memory 
)
static

IsEqual checks whether two type (POD/enum/struct) descriptions are equal.

When this is true for a struct then it also implies IsBinaryEqual is true

Parameters
[in]strType1The name of the first type.
[in]strDesc1The description that has strType1.
[in]strType2The name of the second type.
[in]strDesc2The description that has strType2.
[in]ui32FlagsFlags that specifiy what should be checked, see tItemCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)

◆ IsEqualUnit()

static tResult IsEqualUnit ( const A_UTILS_NS::cString strUnit1,
const A_UTILS_NS::cString strDesc1,
const A_UTILS_NS::cString strUnit2,
const A_UTILS_NS::cString strDesc2,
uint32_t  ui32Flags = ICF_None 
)
static

IsEqualUnit checks whether two unit descriptions are equal.

Parameters
[in]strUnit1The name of the first type.
[in]strDesc1The description that has strUnit1.
[in]strUnit2The name of the second type.
[in]strDesc2The description that has strUnit2.
[in]ui32FlagsFlags that specifiy what should be checked, see tItemCheckFlags.
Return values
ERR_NOERRORThe descriptions are equal.
ERR_FAILEDThe description are not equal.
Standardresult (other DDL parsing errors etc.)