TTypeInfo CPointerTypeInfo::GetRealDataTypeInfo(TConstObjectPtr object) const { TTypeInfo dataTypeInfo = GetPointedType(); if ( object ) dataTypeInfo = dataTypeInfo->GetRealTypeInfo(object); return dataTypeInfo; }
bool CAliasTypeInfo::Equals(TConstObjectPtr object1, TConstObjectPtr object2, ESerialRecursionMode how) const { #if 1 // see CXX-2567 return GetPointedType()->Equals(object1, object2, how); #else return CParent::Equals(object1,object2,how); #endif }
void CAliasTypeInfo::Assign(TObjectPtr dst, TConstObjectPtr src, ESerialRecursionMode how) const { #if 1 GetPointedType()->Assign(dst, src, how); #else TConstObjectPtr data = GetObjectPointer(src); TTypeInfo type = GetRealDataTypeInfo(data); TObjectPtr object = GetObjectPointer(dst); type->Assign(object, data, how); #endif }
bool PointerInfo::is_castable_to(const TypeInfo& type) const { // Make sure the given type is a pointer type if (type.GetType().Extends<PointerInfo>()) { const PointerInfo& pointerType = static_cast<const PointerInfo&>(type); // If this type is a const pointer and the other is not, these are not compatible if (IsConst() && !pointerType.IsConst()) { return false; } // If the pointed types are compatible, then we're good to go return GetPointedType().is_castable_to(pointerType.GetPointedType()); } else { return false; } }
bool CAliasTypeInfo::IsDefault(TConstObjectPtr object) const { return GetPointedType()->IsDefault(object); }
bool CAliasTypeInfo::IsParentClassOf(const CClassTypeInfo* classInfo) const { return GetPointedType()->IsParentClassOf(classInfo); }
const CObject* CAliasTypeInfo::GetCObjectPtr(TConstObjectPtr objectPtr) const { return GetPointedType()->GetCObjectPtr(objectPtr); }
void CAliasTypeInfo::DeleteExternalObjects(TObjectPtr object) const { GetPointedType()->DeleteExternalObjects(object); }
void CAliasTypeInfo::Delete(TObjectPtr object) const { GetPointedType()->Delete(object); }
void CAliasTypeInfo::SetDefault(TObjectPtr dst) const { GetPointedType()->SetDefault(dst); }
CTypeInfo::EMayContainType CPointerTypeInfo::GetMayContainType(TTypeInfo type) const { return GetPointedType()->IsOrMayContainType(type); }