Here is what I do now
Code: Select all
bool isObjectEqual(TOraObject* obj1, TOraObject* obj2)
{
bool isEqual = obj1->ObjectType->Name.Compare(obj2->ObjectType->Name) == 0;
isEqual = isEqual && (obj1->IsNull == obj2->IsNull);
if (isEqual && !obj1->IsNull)
{
if (obj1->ObjectType->Name.CompareIC(L"mytype")==0)
{
isEqual = isEqual && (obj1->AttrAsLargeInt[L"attr1"] == obj2->AttrAsLargeInt[L"attr1"]);
isEqual = isEqual && (obj1->AttrAsString[L"attr2"] == obj2->AttrAsString[L"attr2"]);
}
else
{
//throw exception obj1->ObjectType->Name not supported
}
}
return isEqual;
}
The Attribute list is not accessible, and there is no AttrAsVariant function, so I have to explicitly list all the attributes with the correct attribute type.