Ejemplo n.º 1
0
TTypeInfo CPointerTypeInfo::GetRealDataTypeInfo(TConstObjectPtr object) const
{
    TTypeInfo dataTypeInfo = GetPointedType();
    if ( object )
        dataTypeInfo = dataTypeInfo->GetRealTypeInfo(object);
    return dataTypeInfo;
}
Ejemplo n.º 2
0
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
}
Ejemplo n.º 3
0
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
}
Ejemplo n.º 4
0
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;
	}
}
Ejemplo n.º 5
0
bool CAliasTypeInfo::IsDefault(TConstObjectPtr object) const
{
    return GetPointedType()->IsDefault(object);
}
Ejemplo n.º 6
0
bool CAliasTypeInfo::IsParentClassOf(const CClassTypeInfo* classInfo) const
{
    return GetPointedType()->IsParentClassOf(classInfo);
}
Ejemplo n.º 7
0
const CObject* CAliasTypeInfo::GetCObjectPtr(TConstObjectPtr objectPtr) const
{
    return GetPointedType()->GetCObjectPtr(objectPtr);
}
Ejemplo n.º 8
0
void CAliasTypeInfo::DeleteExternalObjects(TObjectPtr object) const
{
    GetPointedType()->DeleteExternalObjects(object);
}
Ejemplo n.º 9
0
void CAliasTypeInfo::Delete(TObjectPtr object) const
{
    GetPointedType()->Delete(object);
}
Ejemplo n.º 10
0
void CAliasTypeInfo::SetDefault(TObjectPtr dst) const
{
    GetPointedType()->SetDefault(dst);
}
Ejemplo n.º 11
0
CTypeInfo::EMayContainType
CPointerTypeInfo::GetMayContainType(TTypeInfo type) const
{
    return GetPointedType()->IsOrMayContainType(type);
}