5#include "Containers/Map.h"
26#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE
33using FObjectHandle = UE::CoreUObject::Private::FObjectHandlePrivate;
35#elif UE_WITH_REMOTE_OBJECT_HANDLE
42using FObjectHandle = UE::CoreUObject::Private::FRemoteObjectHandlePrivate;
58#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE
75 explicit inline operator bool()
const
95#if USING_THREAD_SANITISER || USING_INSTRUMENTATION
100 Pointer =
Other.Pointer;
111 Pointer =
Other.Pointer;
133#elif UE_WITH_REMOTE_OBJECT_HANDLE
196#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE
197 return !
Handle.PointerOrRef;
198#elif UE_WITH_REMOTE_OBJECT_HANDLE
199 return !
Handle.PointerOrHandle;
211#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE
212 return !(
Handle.PointerOrRef & 1);
213#elif UE_WITH_REMOTE_OBJECT_HANDLE
214 if (!!(
Handle.PointerOrHandle & 1))
234#if UE_WITH_REMOTE_OBJECT_HANDLE
236 return !(
Handle.PointerOrHandle & 1);
247#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE && UE_WITH_OBJECT_HANDLE_TYPE_SAFETY
248 return !((
Handle.PointerOrRef & 3) == 3);
249#elif UE_WITH_REMOTE_OBJECT_HANDLE
257#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE
258inline bool operator==(UE::CoreUObject::Private::FObjectHandlePrivate
LHS, UE::CoreUObject::Private::FObjectHandlePrivate RHS)
268 return LHS.PointerOrRef == RHS.PointerOrRef;
287 return PackedLhs.EncodedRef == RHS.PointerOrRef;
310inline bool operator!=(UE::CoreUObject::Private::FObjectHandlePrivate
LHS, UE::CoreUObject::Private::FObjectHandlePrivate RHS)
312 return !(
LHS == RHS);
319 if (
Handle.PointerOrRef == 0)
337#elif UE_WITH_REMOTE_OBJECT_HANDLE
338inline bool operator==(UE::CoreUObject::Private::FRemoteObjectHandlePrivate
LHS, UE::CoreUObject::Private::FRemoteObjectHandlePrivate RHS)
349 return LHS.PointerOrHandle == RHS.PointerOrHandle;
380inline bool operator!=(UE::CoreUObject::Private::FRemoteObjectHandlePrivate
LHS, UE::CoreUObject::Private::FRemoteObjectHandlePrivate RHS)
382 return !(
LHS == RHS);
390 if (
Handle.PointerOrHandle == 0)
417#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE
429#elif UE_WITH_REMOTE_OBJECT_HANDLE
443#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_OBJECT_HANDLE_TRACKING
447#elif UE_WITH_REMOTE_OBJECT_HANDLE
455#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE
464#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE
475 return ObjectRef.ResolveObjectRefClass();
477#elif UE_WITH_REMOTE_OBJECT_HANDLE
504#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE
516#if UE_WITH_OBJECT_HANDLE_TYPE_SAFETY
524#elif UE_WITH_REMOTE_OBJECT_HANDLE
566#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE
571#if UE_WITH_OBJECT_HANDLE_TYPE_SAFETY
579#elif UE_WITH_REMOTE_OBJECT_HANDLE
601#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE
603#elif UE_WITH_REMOTE_OBJECT_HANDLE
656#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE
#define TSAN_ATOMIC(Type)
Definition CoreMiscDefines.h:147
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRWLock FRWLock
Definition CriticalSection.h:56
UE_FORCEINLINE_HINT bool operator!=(const FIndexedPointer &Other) const
Definition LockFreeList.h:76
const bool
Definition NetworkReplayStreaming.h:178
bool IsObjectHandleNull(FObjectHandle Handle)
Definition ObjectHandle.h:194
UObject * FObjectHandle
Definition ObjectHandle.h:46
bool IsObjectHandleTypeSafe(FObjectHandle Handle)
Definition ObjectHandle.h:245
bool IsObjectHandleResolved_ForGC(FObjectHandle Handle)
Definition ObjectHandle.h:232
bool IsObjectHandleResolved(FObjectHandle Handle)
Definition ObjectHandle.h:209
uint32 Size
Definition VulkanMemory.cpp:4034
Definition NameTypes.h:617
Definition ScriptArray.h:328
Definition UObjectBase.h:59
FORCEINLINE UClass * GetClass() const
Definition UObjectBase.h:217
uint32 GetTypeHash(const FKey &Key)
Definition BlackboardKey.h:35
bool operator==(const FCachedAssetKey &A, const FCachedAssetKey &B)
Definition AssetDataMap.h:501
Definition CoreGlobals.cpp:268
UObject * ReadObjectHandlePointerNoCheck(FObjectHandle Handle)
Definition ObjectHandle.h:599
constexpr FObjectHandle MakeObjectHandle(UObject *Object)
these functions are always defined regardless of UE_WITH_OBJECT_HANDLE_LATE_RESOLVE value
Definition ObjectHandle.h:435
UObject * NoResolveObjectHandleNoRead(const FObjectHandle &Handle)
Definition ObjectHandle.h:550
constexpr uint32 ObjectIdShift
Definition ObjectHandle.h:652
UObject * ResolveObjectHandleNoReadNoCheck(FObjectHandle &Handle)
Definition ObjectHandle.h:564
constexpr uint32 TypeIdShift
Definition ObjectHandle.h:651
UObject * ResolveObjectHandleNoRead(FObjectHandle &Handle)
Definition ObjectHandle.h:502
UObject * ResolveObjectHandle(FObjectHandle &Handle)
Definition ObjectHandle.h:441
UClass * ResolveObjectHandleClass(FObjectHandle Handle)
Definition ObjectHandle.h:462
UClass * GetClass(UObject *Obj)
Definition ObjectFwd.cpp:8
constexpr uint32 PackageIdMask
Definition ObjectHandle.h:654
void OnHandleRead(const UObject *Object)
Definition ObjectHandleTracking.h:131
constexpr uint32 PackageIdShift
Definition ObjectHandle.h:653
Definition RemoteObject.cpp:483
bool IsRemote(FRemoteObjectId ObjectId)
Definition RemoteObject.cpp:535
UObject * ResolveObject(const FRemoteObjectStub *Stub, ERemoteReferenceType RefType)
Definition RemoteObject.cpp:698
void TouchResidentObject(UObject *Object)
Definition RemoteObject.cpp:763
U16 Index
Definition radfft.cpp:71
Definition NameTypes.h:439
Definition RemoteObjectTypes.h:212
Definition ObjectHandle.h:634
FObjectPathIdDebug ObjectPath
Definition ObjectHandle.h:635
FObjectHandleDataClassDescriptor ClassDescriptor
Definition ObjectHandle.h:636
Definition ObjectHandle.h:619
FMinimalName ClassName
Definition ObjectHandle.h:621
FMinimalName PackageName
Definition ObjectHandle.h:620
Definition ObjectHandle.h:612
FMinimalName PackageName
Definition ObjectHandle.h:613
uint8 _Padding[sizeof(FRWLock)]
Definition ObjectHandle.h:615
FScriptArray ObjectDescriptors
Definition ObjectHandle.h:614
Definition ObjectHandle.h:625
uint32 Number
Definition ObjectHandle.h:627
static constexpr uint32 WeakObjectMask
Definition ObjectHandle.h:629
static constexpr uint32 SimpleNameMask
Definition ObjectHandle.h:630
Definition ObjectHandle.h:640
static constexpr const int32 NumInlineElements
Definition ObjectHandle.h:641
FMinimalName Short[NumInlineElements]
Definition ObjectHandle.h:646
FMinimalName * Long
Definition ObjectHandle.h:647
int32 NumElements
Definition ObjectHandle.h:642
Definition RemoteObject.h:118
FRemoteObjectId Id
Definition RemoteObject.h:119