5#include "Containers/Array.h"
7#include "Containers/Map.h"
31 struct FReplicationProtocol;
32 struct FReplicationInstanceProtocol;
36 class FReplicationProtocolManager;
38 struct FCreateNetObjectParams;
385 template <
typename T>
388 if (ObjectsWithDependentObjectsInternalIndices.
GetBit(ObjectIndex))
440 uint32 MaxActiveObjectCount = 0;
443 uint32 ActiveObjectCount = 0;
452 uint32 HighestNetChunkedArrayInternalIndex = 0;
459 struct FScopeFrameData
461 FScopeFrameData() : bIsValid(
false) { }
467 FNetBitArray CurrentFrameScopableInternalIndices;
470 FNetBitArray PrevFrameScopableInternalIndices;
474 FNetBitArray GlobalScopableInternalIndices;
477 FScopeFrameData ScopeFrameData;
480 FNetBitArray RelevantObjectsInternalIndices;
483 FNetBitArray PolledObjectsInternalIndices;
486 FNetBitArray DirtyObjectsToQuantize;
489 FNetBitArray AssignedInternalIndices;
492 FNetBitArray SubObjectInternalIndices;
495 FNetBitArray DependentObjectInternalIndices;
500 FNetBitArray ObjectsWithCreationDependencies;
503 FNetBitArray ObjectsWithDependentObjectsInternalIndices;
507 FNetBitArray DestroyedStartupObjectInternalIndices;
510 FNetBitArray WantToBeDormantInternalIndices;
513 FNetBitArray DormantObjectsPendingFlushNet;
516 FNetBitArray ObjectsWithPreUpdate;
519 FNetBitArray ObjectsWithFullPushBasedDirtiness;
534 TNetChunkedArray<uint8*> ReplicatedObjectStateBuffers;
537 TNetChunkedArray<uint16> ReplicatedObjectRefCount;
544 uint64 NextStaticHandleIndex = 1;
545 uint64 NextDynamicHandleIndex = 1;
548 FNetDependencyData SubObjects;
550 FReplicationProtocolManager& ReplicationProtocolManager;
612 return RefHandleToInternalIndex.Contains(
Handle);
630 return ReplicatedObjectStateBuffers[
InternalIndex] ==
nullptr;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
void Init()
Definition LockFreeList.h:4
EIrisAsyncLoadingPriority
Definition ObjectReferenceTypes.h:14
int32 InternalIndex
Definition VulkanMemory.cpp:4036
Definition UObjectGlobals.h:2492
Definition ArrayView.h:139
Definition UnrealString.h.inl:34
Definition NetBitArray.h:337
Definition NetBitArray.h:74
bool GetBit(uint32 Index) const
Definition NetBitArray.h:1253
void SetBitValue(uint32 Index, bool bValue)
Definition NetBitArray.h:1233
Definition NetHandle.h:32
Definition NetRefHandle.h:25
static FNetRefHandle GetInvalid()
Definition NetRefHandle.h:28
FInternalNetRefIndexArray * GetInternalIndexArray(FInternalNetRefIndex InternalIndex)
Definition NetDependencyData.h:145
bool GetChildSubObjects(FInternalNetRefIndex InternalIndex, FChildSubObjectsInfo &OutInfo) const
Definition NetDependencyData.h:101
FDependentObjectInfoArray * GetDependentObjectInfoArray(FInternalNetRefIndex InternalIndex)
Definition NetDependencyData.h:60
@ DependentParentObjects
Definition NetDependencyData.h:47
@ SubObjects
Definition NetDependencyData.h:45
@ ChildSubObjects
Definition NetDependencyData.h:46
Definition NetRefHandleManager.h:72
const uint8 * GetReplicatedObjectStateBufferNoCheck(FInternalNetRefIndex InternalObjectIndex) const
Definition NetRefHandleManager.h:205
const FRefHandleMap & GetReplicatedHandles() const
Definition NetRefHandleManager.h:330
FNetBitArrayView GetRelevantObjectsInternalIndices() const
Definition NetRefHandleManager.h:245
bool SetSubObjectNetCondition(FInternalNetRefIndex SubObjectInternalIndex, FLifeTimeConditionStorage SubObjectCondition, bool &bOutWasModified)
Definition NetRefHandleManager.cpp:758
FNetRefHandle CreateNetObject(FNetRefHandle WantedHandle, FNetHandle GlobalHandle, const FCreateNetObjectParams &Params)
Definition NetRefHandleManager.cpp:350
void DestroyNetObject(FNetRefHandle Handle)
Definition NetRefHandleManager.cpp:558
FString PrintObjectFromIndex(FInternalNetRefIndex ObjectIndex) const
Definition NetRefHandleManager.cpp:1209
const TNetChunkedArray< TObjectPtr< UObject > > & GetReplicatedInstances() const
Definition NetRefHandleManager.h:336
FReplicatedObjectData & GetReplicatedObjectDataNoCheck(FInternalNetRefIndex InternalIndex)
Definition NetRefHandleManager.h:201
void ForAllDependentObjectsRecursive(FInternalNetRefIndex ObjectIndex, T &&Functor) const
Definition NetRefHandleManager.h:386
uint32 GetHighestNetChunkedArrayInternalIndex() const
Definition NetRefHandleManager.h:372
void Deinit()
Definition NetRefHandleManager.cpp:98
const FNetBitArrayView GetWantToBeDormantInternalIndices() const
Definition NetRefHandleManager.h:346
TArrayView< const FInternalNetRefIndex > GetChildSubObjects(FInternalNetRefIndex ParentObjectIndex) const
Definition NetRefHandleManager.h:657
FOnMaxInternalNetRefIndexIncreased::RegistrationType & GetOnMaxInternalNetRefIndexIncreasedDelegate() const
Definition NetRefHandleManager.h:376
void DestroyObjectsPendingDestroy()
Definition NetRefHandleManager.cpp:577
void OnPostSendUpdate()
Definition NetRefHandleManager.cpp:1198
FNetRefHandle CreateHandleForDestructionInfo(FNetRefHandle Handle, const FCreateNetObjectParams &Params)
Definition NetRefHandleManager.cpp:520
FInternalNetRefIndex GetRootObjectInternalIndexOfSubObject(FInternalNetRefIndex SubObjectIndex) const
Definition NetRefHandleManager.cpp:826
const FNetBitArrayView GetDependentObjectInternalIndices() const
Definition NetRefHandleManager.h:276
const FReplicationInstanceProtocol * DetachInstanceProtocol(FInternalNetRefIndex InternalIndex)
Definition NetRefHandleManager.cpp:304
void AddNetObjectRef(FInternalNetRefIndex InternalIndex)
Definition NetRefHandleManager.h:310
FNetBitArrayView GetObjectsWithFullPushBasedDirtiness() const
Definition NetRefHandleManager.h:357
const FNetBitArrayView GetPrevFrameScopableInternalIndices() const
Definition NetRefHandleManager.h:242
FOnInternalNetRefIndicesFreed::RegistrationType & GetOnInternalNetRefIndicesFreedDelegate() const
Definition NetRefHandleManager.h:380
const FNetBitArrayView GetObjectsWithDependentObjectsInternalIndices() const
Definition NetRefHandleManager.h:277
@ InvalidInternalIndex
Definition NetRefHandleManager.h:75
const FNetBitArrayView GetGlobalScopableInternalIndices() const
Definition NetRefHandleManager.h:236
const FNetBitArrayView GetDestroyedStartupObjectInternalIndices() const
Definition NetRefHandleManager.h:343
bool GetIsDestroyedStartupObject(FInternalNetRefIndex InternalIndex) const
Definition NetRefHandleManager.h:340
FNetBitArrayView GetDirtyObjectsToQuantize() const
Definition NetRefHandleManager.h:251
const FNetBitArrayView GetObjectsWithCreationDependencies() const
Definition NetRefHandleManager.h:286
FNetBitArrayView GetPolledObjectsInternalIndices() const
Definition NetRefHandleManager.h:248
bool AddSubObject(FNetRefHandle RootObjectHandle, FNetRefHandle SubObjectHandle, FNetRefHandle RelativeOtherSubObjectHandle, EAddSubObjectFlags Flags=EAddSubObjectFlags::Default)
Definition NetRefHandleManager.cpp:605
FNetBitArrayView GetWantToBeDormantInternalIndices()
Definition NetRefHandleManager.h:347
FString PrintObjectFromNetRefHandle(FNetRefHandle ObjectHandle) const
Definition NetRefHandleManager.cpp:1241
uint32 GetActiveObjectCount() const
Definition NetRefHandleManager.h:307
FNetRefHandle GetCompleteNetRefHandle(FNetRefHandle IncompleteHandle) const
Definition NetRefHandleManager.h:585
TArrayView< const FDependentObjectInfo > GetDependentObjectInfos(FInternalNetRefIndex ParentIndex) const
Definition NetRefHandleManager.h:315
bool IsLocal(FInternalNetRefIndex InternalIndex) const
Definition NetRefHandleManager.h:615
bool IsSubObject(FInternalNetRefIndex InternalIndex) const
Definition NetRefHandleManager.h:270
void AddReferencedObjects(FReferenceCollector &Collector)
Definition NetRefHandleManager.cpp:1150
void ReleaseNetObjectRef(FInternalNetRefIndex InternalIndex)
Definition NetRefHandleManager.h:311
FInternalNetRefIndex GetInternalIndexFromNetHandle(FNetHandle Handle) const
Definition NetRefHandleManager.h:573
bool AddDependentObject(FNetRefHandle ParentHandle, FNetRefHandle DependentHandle, EDependentObjectSchedulingHint SchedulingHint)
Definition NetRefHandleManager.cpp:831
const FReplicatedObjectData & GetReplicatedObjectData(FInternalNetRefIndex InternalIndex) const
Definition NetRefHandleManager.h:561
const FNetBitArrayView GetCurrentFrameScopableInternalIndices() const
Definition NetRefHandleManager.h:239
bool IsScopableIndex(FInternalNetRefIndex InternalIndex) const
Definition NetRefHandleManager.h:163
TArrayView< const FInternalNetRefIndex > GetObjectsPendingDestroy() const
Definition NetRefHandleManager.h:197
uint32 GetMaxActiveObjectCount() const
Definition NetRefHandleManager.h:304
FOnNetChunkedArrayIncrease::RegistrationType & GetOnNetChunkedArrayIncreaseDelegate() const
Definition NetRefHandleManager.h:369
FNetBitArrayView GetDormantObjectsPendingFlushNet()
Definition NetRefHandleManager.h:351
const FNetBitArray & GetSubObjectInternalIndices() const
Definition NetRefHandleManager.h:257
uint8 * GetReplicatedObjectStateBufferNoCheck(FInternalNetRefIndex InternalObjectIndex)
Definition NetRefHandleManager.h:206
bool HasInstanceProtocol(FInternalNetRefIndex InternalIndex) const
Definition NetRefHandleManager.cpp:323
FInternalNetRefIndex GetInternalIndex(FNetRefHandle Handle) const
Definition NetRefHandleManager.h:567
bool IsNetRefHandleAssigned(FNetRefHandle Handle) const
Definition NetRefHandleManager.h:610
TArrayView< const FInternalNetRefIndex > GetDependentObjectParents(FInternalNetRefIndex DependentIndex) const
Definition NetRefHandleManager.h:662
uint16 GetNetObjectRefCount(FInternalNetRefIndex ObjectInternalIndex) const
Definition NetRefHandleManager.h:312
const TNetChunkedArray< uint8 * > & GetReplicatedObjectStateBuffers() const
Definition NetRefHandleManager.h:207
void RemoveFromScope(FInternalNetRefIndex InternalIndex)
Definition NetRefHandleManager.cpp:549
FNetRefHandle GetNetRefHandleFromInternalIndex(FInternalNetRefIndex InternalIndex) const
Definition NetRefHandleManager.h:579
bool IsLocalNetRefHandle(FNetRefHandle Handle) const
Definition NetRefHandleManager.h:620
FNetBitArrayView GetObjectsWithPreUpdate() const
Definition NetRefHandleManager.h:354
void SetShouldPropagateChangedStates(FNetRefHandle Handle, bool bShouldPropagateChangedStates)
Definition NetRefHandleManager.cpp:1144
const FNetBitArrayView GetDormantObjectsPendingFlushNet() const
Definition NetRefHandleManager.h:350
void RemoveDependentObject(FNetRefHandle ParentHandle, FNetRefHandle DependentHandle)
Definition NetRefHandleManager.cpp:1082
bool AddCreationDependency(FNetRefHandle Parent, FNetRefHandle Child)
Definition NetRefHandleManager.cpp:919
UObject * GetReplicatedObjectInstance(FInternalNetRefIndex ObjectIndex) const
Definition NetRefHandleManager.h:333
static FNetRefHandle MakeNetRefHandle(uint64 Id, uint32 ReplicationSystemId)
Definition NetRefHandleManager.cpp:1163
void OnPreSendUpdate()
Definition NetRefHandleManager.cpp:1189
void RemoveCreationDependency(FNetRefHandle Parent, FNetRefHandle Child)
Definition NetRefHandleManager.cpp:958
const FReplicatedObjectData & GetReplicatedObjectDataNoCheck(FInternalNetRefIndex InternalIndex) const
Definition NetRefHandleManager.h:200
TMulticastDelegate< void(const TConstArrayView< FInternalNetRefIndex > &FreedIndices)> FOnInternalNetRefIndicesFreed
Definition NetRefHandleManager.h:379
FNetRefHandle AllocateNetRefHandle(bool bIsStatic)
Definition NetRefHandleManager.cpp:329
static FNetRefHandle MakeNetRefHandleFromId(uint64 Id)
Definition NetRefHandleManager.cpp:1176
TMap< FNetRefHandle, FInternalNetRefIndex > FRefHandleMap
Definition NetRefHandleManager.h:136
TConstArrayView< const FInternalNetRefIndex > GetCreationDependencies(FInternalNetRefIndex ChildInternalIndex) const
Definition NetRefHandleManager.cpp:986
bool IsRemoteNetRefHandle(FNetRefHandle Handle) const
Definition NetRefHandleManager.h:625
TMulticastDelegate< void(FInternalNetRefIndex HighestInternalIndex)> FOnNetChunkedArrayIncrease
Definition NetRefHandleManager.h:368
EIrisAsyncLoadingPriority GetIrisAsyncLoadingPriority(FInternalNetRefIndex InternalIndex) const
Definition NetRefHandleManager.h:597
FInternalNetRefIndex GetCurrentMaxInternalNetRefIndex() const
Definition NetRefHandleManager.h:301
void RemoveSubObject(FNetRefHandle SubObjectHandle)
Definition NetRefHandleManager.cpp:743
uint32 GetOriginalDestroyedStartupObjectIndex(FInternalNetRefIndex InternalIndex) const
Definition NetRefHandleManager.h:636
FNetRefHandle CreateNetObjectFromRemote(FNetRefHandle WantedHandle, const FCreateNetObjectParams &Params)
Definition NetRefHandleManager.cpp:384
TMulticastDelegate< void(FInternalNetRefIndex MaxInternalIndex)> FOnMaxInternalNetRefIndexIncreased
Definition NetRefHandleManager.h:375
const FNetBitArrayView GetSubObjectInternalIndicesView() const
Definition NetRefHandleManager.h:258
const FNetBitArrayView GetAssignedInternalIndices() const
Definition NetRefHandleManager.h:254
TArrayView< const FInternalNetRefIndex > GetSubObjects(FInternalNetRefIndex OwnerIndex) const
Definition NetRefHandleManager.h:647
void AttachInstanceProtocol(FInternalNetRefIndex InternalIndex, const FReplicationInstanceProtocol *InstanceProtocol, UObject *Instance)
Definition NetRefHandleManager.cpp:289
TMap< FNetHandle, FInternalNetRefIndex > FNetHandleMap
Definition NetRefHandleManager.h:137
FNetRefHandle GetRootObjectOfAnyObject(FNetRefHandle NetRefHandle) const
Definition NetRefHandleManager.cpp:804
FNetRefHandle GetRootObjectOfSubObject(FNetRefHandle SubObjectHandle) const
Definition NetRefHandleManager.cpp:818
Definition ReplicationProtocolManager.h:25
Definition NetChunkedArray.h:23
Definition OverriddenPropertySet.cpp:45
Definition NetworkVersion.cpp:28
EAddSubObjectFlags
Definition NetRefHandleManager.h:48
@ None
Definition ReplicationDataStreamDebug.h:25
ERemoveDependentObjectFlags
Definition NetRefHandleManager.h:62
@ RemoveFromParentDependentObjects
@ RemoveFromDependentParentObjects
uint32 FInternalNetRefIndex
Definition ReplicationStateStorage.h:20
int8 FLifeTimeConditionStorage
Definition NetDependencyData.h:14
Definition NetworkVersion.cpp:28
EDependentObjectSchedulingHint
Definition ReplicationSystemTypes.h:37
uint8 FNetObjectFactoryId
Definition NetObjectFactoryRegistry.h:18
@ InvalidNetObjectFactoryId
Definition NetObjectFactoryRegistry.h:19
constexpr uint32 InvalidReplicationSystemId
Definition IrisConstants.h:10
FNetBitArrayView MakeNetBitArrayView(const FNetBitArrayView::StorageWordType *Storage, uint32 BitCount)
Definition NetBitArray.h:1677
@ false
Definition radaudio_common.h:23
Definition ReplicationProtocol.h:42
Definition ReplicationProtocol.h:83
Definition NetDependencyData.h:21
Definition NetRefHandleManagerTypes.h:18
Definition NetDependencyData.h:28
Definition NetRefHandleManager.h:143
uint32 InternalNetRefIndexGrowSize
Definition NetRefHandleManager.h:148
uint32 ReplicationSystemId
Definition NetRefHandleManager.h:144
uint32 InternalNetRefIndexInitSize
Definition NetRefHandleManager.h:146
uint32 MaxActiveObjectCount
Definition NetRefHandleManager.h:145
uint32 NetChunkedArrayCount
Definition NetRefHandleManager.h:147
Definition NetRefHandleManager.h:80
bool IsSubObject() const
Definition NetRefHandleManager.h:127
FNetHandle NetHandle
Definition NetRefHandleManager.h:87
uint16 bHasDependentObjects
Definition NetRefHandleManager.h:114
EIrisAsyncLoadingPriority IrisAsyncLoadingPriority
Definition NetRefHandleManager.h:103
uint8 * ReceiveStateBuffer
Definition NetRefHandleManager.h:91
bool IsDependentObject() const
Definition NetRefHandleManager.h:130
FNetObjectFactoryId NetFactoryId
Definition NetRefHandleManager.h:100
const FReplicationProtocol * Protocol
Definition NetRefHandleManager.h:89
uint16 bDestroySubObjectWithOwner
Definition NetRefHandleManager.h:112
bool IsOwnedSubObject() const
Definition NetRefHandleManager.h:124
uint16 bShouldPropagateChangedStates
Definition NetRefHandleManager.h:110
FReplicatedObjectData()
Definition NetRefHandleManager.h:81
uint16 bWantsFullPoll
Definition NetRefHandleManager.h:117
uint16 bIsDependentObject
Definition NetRefHandleManager.h:113
FInternalNetRefIndex SubObjectRootIndex
Definition NetRefHandleManager.h:94
uint16 bHasCachedCreationInfo
Definition NetRefHandleManager.h:119
const FReplicationInstanceProtocol * InstanceProtocol
Definition NetRefHandleManager.h:90
uint16 bNeedsFullCopyAndQuantize
Definition NetRefHandleManager.h:116
FInternalNetRefIndex SubObjectParentIndex
Definition NetRefHandleManager.h:97
uint16 bPendingEndReplication
Definition NetRefHandleManager.h:118
uint16 bAllowDestroyInstanceFromRemote
Definition NetRefHandleManager.h:115
uint16 Flags
Definition NetRefHandleManager.h:107
uint16 bTearOff
Definition NetRefHandleManager.h:111
FNetRefHandle RefHandle
Definition NetRefHandleManager.h:86