2023-01-05 12:27:16 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
#if WITH_LOW_LEVEL_TESTS
|
|
|
|
|
|
|
|
|
|
#include "UObject/Object.h"
|
2023-01-23 17:33:10 -05:00
|
|
|
#include "UObject/ObjectPtr.h"
|
2023-01-05 12:27:16 -05:00
|
|
|
|
|
|
|
|
//simple test class for testing TObjectPtr resolve behavior
|
|
|
|
|
class UObjectPtrTestClass : public UObject
|
|
|
|
|
{
|
|
|
|
|
DECLARE_CLASS_INTRINSIC(UObjectPtrTestClass, UObject, CLASS_MatchedSerializers, TEXT("/Script/CoreUObject"))
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
2023-01-23 17:33:10 -05:00
|
|
|
//test class with typed reference to another class
|
|
|
|
|
class UObjectPtrTestClassWithRef : public UObject
|
|
|
|
|
{
|
|
|
|
|
DECLARE_CLASS_INTRINSIC(UObjectPtrTestClassWithRef, UObject, CLASS_MatchedSerializers, TEXT("/Script/CoreUObject"))
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
TObjectPtr<UObjectPtrTestClass> ObjectPtr;
|
|
|
|
|
TObjectPtr<UObjectPtrTestClass> ObjectPtrNonNullable;
|
|
|
|
|
};
|
2023-01-05 12:27:16 -05:00
|
|
|
|
|
|
|
|
|
2023-01-30 13:40:49 -05:00
|
|
|
//test class with typed reference to another class
|
|
|
|
|
class UObjectWithClassProperty : public UObject
|
|
|
|
|
{
|
|
|
|
|
DECLARE_CLASS_INTRINSIC(UObjectWithClassProperty, UObject, CLASS_MatchedSerializers, TEXT("/Script/CoreUObject"))
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
TObjectPtr<UClass> ClassPtr;
|
|
|
|
|
};
|
|
|
|
|
|
2023-01-30 16:52:28 -05:00
|
|
|
//test class with raw pointer
|
|
|
|
|
class UObjectWithRawProperty : public UObject
|
|
|
|
|
{
|
|
|
|
|
DECLARE_CLASS_INTRINSIC(UObjectWithRawProperty, UObject, CLASS_MatchedSerializers, TEXT("/Script/CoreUObject"))
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
UObjectPtrTestClass* ObjectPtr;
|
|
|
|
|
UObjectPtrTestClass* ObjectPtrNonNullable;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-01-05 12:27:16 -05:00
|
|
|
//derived test class
|
|
|
|
|
class UObjectPtrDerrivedTestClass : public UObjectPtrTestClass
|
|
|
|
|
{
|
|
|
|
|
DECLARE_CLASS_INTRINSIC(UObjectPtrDerrivedTestClass, UObjectPtrTestClass, CLASS_MatchedSerializers, TEXT("/Script/CoreUObject"))
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//non lazy test class
|
|
|
|
|
class UObjectPtrNotLazyTestClass : public UObject
|
|
|
|
|
{
|
|
|
|
|
DECLARE_CLASS_INTRINSIC(UObjectPtrNotLazyTestClass, UObject, CLASS_MatchedSerializers, TEXT("/Script/CoreUObject"))
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|