10#include "Containers/Map.h"
18 class FStringTokenStore;
20 class FNetSerializationContext;
21 struct FObjectNetSerializerQuantizedReferenceStorage;
24 class FNetRefHandleManager;
25 class FNetExportContext;
26 struct FPendingBatchHolder;
167 struct FCachedNetObjectReference
170 const UObject* ObjectKey =
nullptr;
182 uint8 bNoLoad : 1 =
false;
183 uint8 bIgnoreWhenMissing : 1 =
false;
184 uint8 bIsPackage : 1 =
false;
185 uint8 bIsBroken : 1 =
false;
186 uint8 bIsPending : 1 =
false;
187 uint8 bIsPreRegistered : 1 =
false;
190 struct FQueuedBatchObjectReference
196 struct FPendingAsyncLoadRequest
199 void Merge(
const FPendingAsyncLoadRequest&
Other);
204 double RequestStartTime;
207 bool CreateObjectReferenceInternal(
const UObject* Object, FNetObjectReference&
OutReference);
210 void ReadFullReferenceInternal(FNetSerializationContext&
Context, FNetObjectReference&
OutRef,
uint32 RecursionCount);
211 void WriteFullReferenceInternal(FNetSerializationContext&
Context,
const FNetObjectReference& Ref)
const;
213 UObject* ResolveObjectReferenceHandleInternal(FNetRefHandle RefHandle,
const FNetObjectResolveContext& ResolveContext,
bool&
bOutMustBeMapped);
214 bool IsDynamicInternal(
const UObject* Object)
const;
215 bool SupportsObjectInternal(
const UObject* Object)
const;
216 bool CanClientLoadObjectInternal(
const UObject* Object,
bool bIsDynamic)
const;
217 bool ShouldIgnoreWhenMissing(FNetRefHandle RefHandle)
const;
218 bool RenamePathForPie(
uint32 ConnectionId, FString& Str,
bool bReading);
221 FString FullPath(FNetRefHandle RefHandle,
const FNetObjectResolveContext& ResolveContext)
const;
222 void GenerateFullPath_r(FNetRefHandle RefHandle,
const FNetObjectResolveContext& ResolveContext, FString&
OutFullPath)
const;
225 FNetRefHandle GetDynamicRoot(
const FNetRefHandle
Handle)
const;
236 void ValidateAsyncLoadingPackage(FCachedNetObjectReference& Object,
FName PackagePath,
const FNetRefHandle RefHandle);
252 FNetTokenStore* NetTokenStore;
253 FStringTokenStore* StringTokenStore;
254 FNetRefHandleManager* NetRefHandleManager;
268 bool bCachedCVarAllowAsyncLoading;
295 return ResolveObjectReferenceHandleInternal(RefHandle, ResolveContext,
bMustBeMapped);
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
EIrisAsyncLoadingPriority
Definition ObjectReferenceTypes.h:14
int32 TAsyncLoadPriority
Definition UObjectGlobals.h:726
Definition NameTypes.h:617
Definition UObjectGlobals.h:2492
Definition ArrayView.h:139
Definition UnrealString.h.inl:34
Definition NetObjectReference.h:38
bool IsValid() const
Definition NetObjectReference.h:43
Definition NetRefHandle.h:25
Definition NetSerializationContext.h:31
Definition NetExportContext.h:17
Definition ObjectReferenceCache.h:38
const TCHAR * GetObjectRelativePath(FNetRefHandle NetRefHandle) const
Definition ObjectReferenceCache.cpp:2306
EWriteExportsResult WritePendingExports(FNetSerializationContext &Context, FInternalNetRefIndex ObjectIndex)
Definition ObjectReferenceCache.cpp:1701
FNetRefHandle CreateObjectReferenceHandle(const UObject *Object)
Definition ObjectReferenceCache.cpp:252
void AddTrackedQueuedBatchObjectReference(const FNetRefHandle InHandle, const UObject *InObject)
Definition ObjectReferenceCache.cpp:2278
UObject * ResolveObjectReferenceHandle(FNetRefHandle RefHandle, const FNetObjectResolveContext &ResolveContext)
Definition ObjectReferenceCache.h:292
void RemoveReference(FNetRefHandle RefHandle, const UObject *Object)
Definition ObjectReferenceCache.cpp:593
FObjectReferenceCache()
Definition ObjectReferenceCache.cpp:114
void UpdateTrackedQueuedBatchObjectReference(const FNetRefHandle InHandle, const UObject *NewObject)
Definition ObjectReferenceCache.cpp:2285
void ReadFullReference(FNetSerializationContext &Context, FNetObjectReference &OutRef)
Definition ObjectReferenceCache.cpp:1474
bool IsAuthority() const
Definition ObjectReferenceCache.cpp:170
EAsyncLoadMode
Definition ObjectReferenceCache.h:142
bool IsNetRefHandlePreRegistered(FNetRefHandle NetRefHandle) const
Definition ObjectReferenceCache.cpp:730
bool ReadExports(const FNetRefHandle &NetObjectHandle, FNetSerializationContext &Context, TArray< FNetRefHandle > *MustBeMappedExports, EIrisAsyncLoadingPriority &OutIrisAsyncLoadingPriority)
Definition ObjectReferenceCache.cpp:1792
FString DescribeObjectReference(const FNetObjectReference Ref, const FNetObjectResolveContext &ResolveContext)
Definition ObjectReferenceCache.cpp:1943
FNetRefHandle PreRegisterObjectReferenceHandle(const UObject *Object)
Definition ObjectReferenceCache.cpp:260
void AddPendingExport(FNetExportContext &ExportContext, const FNetObjectReference &Reference) const
Definition ObjectReferenceCache.cpp:1662
void BindRemoteReference(FNetRefHandle RefHandle, const UObject *Object)
Definition ObjectReferenceCache.cpp:518
UObject * GetPreRegisteredObjectFromReferenceHandle(FNetRefHandle RefHandle)
Definition ObjectReferenceCache.cpp:715
void SetAsyncLoadMode(const EAsyncLoadMode NewMode)
Definition ObjectReferenceCache.cpp:2228
FNetObjectReference GetReplicatedOuter(const FNetObjectReference &Reference) const
Definition ObjectReferenceCache.cpp:1202
void AddPreRegisteredReference(FNetRefHandle RefHandle, const UObject *Object)
Definition ObjectReferenceCache.cpp:572
void AddPendingExports(FNetSerializationContext &Context, TArrayView< const FNetObjectReference > ExportsView) const
Definition ObjectReferenceCache.cpp:1674
bool IsDynamicObject(const UObject *Object) const
Definition ObjectReferenceCache.cpp:155
void ReadReference(FNetSerializationContext &Context, FNetObjectReference &OutRef)
Definition ObjectReferenceCache.cpp:1600
UObject * GetObjectFromReferenceHandle(FNetRefHandle RefHandle)
Definition ObjectReferenceCache.cpp:706
bool IsNetRefHandlePending(FNetRefHandle NetRefHandle, const FPendingBatchHolder &PendingBatchHolder) const
Definition ObjectReferenceCache.cpp:736
UObject * ResolveObjectReference(const FNetObjectReference &ObjectRef, const FNetObjectResolveContext &ResolveContext)
Definition ObjectReferenceCache.h:298
static FNetObjectReference MakeNetObjectReference(FNetRefHandle Handle)
Definition ObjectReferenceCache.h:305
EWriteExportsResult
Definition ObjectReferenceCache.h:121
FNetObjectReference GetOrCreateObjectReference(const UObject *Instance)
Definition ObjectReferenceCache.cpp:1244
FNetRefHandle GetObjectReferenceHandleFromObject(const UObject *Object, EGetRefHandleFlags GetRefHandleFlags=EGetRefHandleFlags::None) const
Definition ObjectReferenceCache.cpp:478
bool IsNetRefHandleBroken(FNetRefHandle Handle, bool bMustBeRegistered) const
Definition ObjectReferenceCache.cpp:724
void AddReferencedObjects(FReferenceCollector &ReferenceCollector)
Definition ObjectReferenceCache.cpp:2259
void RemoveTrackedQueuedBatchObjectReference(const FNetRefHandle InHandle)
Definition ObjectReferenceCache.cpp:2293
bool ShouldAsyncLoad() const
Definition ObjectReferenceCache.cpp:2237
void WriteFullReference(FNetSerializationContext &Context, FNetObjectReference Ref) const
Definition ObjectReferenceCache.cpp:1527
void WriteReference(FNetSerializationContext &Context, FNetObjectReference Ref) const
Definition ObjectReferenceCache.cpp:1560
Definition ObjectReplicationBridge.h:83
Definition ReplicationSystem.h:70
Type
Definition UObjectGlobals.h:694
Definition OverriddenPropertySet.cpp:45
Definition NetworkVersion.cpp:28
uint32 FInternalNetRefIndex
Definition ReplicationStateStorage.h:20
Definition NetworkVersion.cpp:28
ENetObjectReferenceResolveResult
Definition NetObjectReference.h:110
ENetObjectReferenceTraits
Definition NetObjectReference.h:24
EGetRefHandleFlags
Definition ReplicationSystemTypes.h:19
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25
Definition ObjectReferenceCacheFwd.h:30
Definition PendingBatchData.h:74