7#include "Containers/Map.h"
52 template<EArrayType TypeIndex>
62 const FDependencyInfo* Entry = DependencyInfos.Find(
InternalIndex);
63 const uint32 ArrayIndex = Entry ? Entry->DependentObjectsInfoArrayIndex : FDependencyInfo::InvalidCacheIndex;
64 if (ArrayIndex != FDependencyInfo::InvalidCacheIndex)
66 return &DependentObjectInfosStorage[ArrayIndex];
73 const FDependencyInfo* Entry = DependencyInfos.Find(
InternalIndex);
74 const uint32 ArrayIndex = Entry ? Entry->DependentObjectsInfoArrayIndex : FDependencyInfo::InvalidCacheIndex;
75 if (ArrayIndex != FDependencyInfo::InvalidCacheIndex)
77 return MakeArrayView(DependentObjectInfosStorage[ArrayIndex]);
88 const FDependencyInfo* Entry = DependencyInfos.Find(
InternalIndex);
89 const uint32 ArrayIndex = Entry ? Entry->ArrayIndices[
ChildSubObjects] : FDependencyInfo::InvalidCacheIndex;
91 if (ArrayIndex == FDependencyInfo::InvalidCacheIndex)
97 OutSubObjectConditionals = Entry->SubObjectConditionalArrayIndex != FDependencyInfo::InvalidCacheIndex ? &SubObjectConditionalsStorage[Entry->SubObjectConditionalArrayIndex] :
nullptr;
103 const FDependencyInfo* Entry = DependencyInfos.Find(
InternalIndex);
104 const uint32 ArrayIndex = Entry ? Entry->ArrayIndices[
ChildSubObjects] : FDependencyInfo::InvalidCacheIndex;
105 if (ArrayIndex == FDependencyInfo::InvalidCacheIndex)
110 OutInfo.
ChildSubObjects = DependentObjectsStorage[ArrayIndex].GetData();
111 OutInfo.
SubObjectLifeTimeConditions = Entry->SubObjectConditionalArrayIndex != FDependencyInfo::InvalidCacheIndex ? SubObjectConditionalsStorage[Entry->SubObjectConditionalArrayIndex].GetData() :
nullptr;
112 OutInfo.
NumSubObjects = DependentObjectsStorage[ArrayIndex].Num();
124 const FDependencyInfo* Entry = DependencyInfos.Find(ChildIndex);
125 const uint32 ArrayIndex = Entry ? Entry->CreationDependencyArrayIndex : FDependencyInfo::InvalidCacheIndex;
126 if (ArrayIndex != FDependencyInfo::InvalidCacheIndex)
128 return &CreationDependencyInfosStorage[ArrayIndex];
135 const FDependencyInfo* Entry = DependencyInfos.Find(ChildIndex);
136 const uint32 ArrayIndex = Entry ? Entry->CreationDependencyArrayIndex : FDependencyInfo::InvalidCacheIndex;
137 if (ArrayIndex != FDependencyInfo::InvalidCacheIndex)
139 return &CreationDependencyInfosStorage[ArrayIndex];
144 template<EArrayType TypeIndex>
148 const FDependencyInfo* Entry = DependencyInfos.Find(
InternalIndex);
149 const uint32 ArrayIndex = Entry ? Entry->ArrayIndices[TypeIndex] : FDependencyInfo::InvalidCacheIndex;
150 if (ArrayIndex != FDependencyInfo::InvalidCacheIndex)
152 return &DependentObjectsStorage[ArrayIndex];
157 template<EArrayType TypeIndex>
162 const FDependencyInfo* Entry = DependencyInfos.Find(
InternalIndex);
163 const uint32 ArrayIndex = Entry ? Entry->ArrayIndices[TypeIndex] : FDependencyInfo::InvalidCacheIndex;
164 if (ArrayIndex != FDependencyInfo::InvalidCacheIndex)
175 struct FDependencyInfo
177 constexpr static uint32 InvalidCacheIndex = ~(0U);
178 uint32 ArrayIndices[
EArrayType::Count] = { InvalidCacheIndex, InvalidCacheIndex, InvalidCacheIndex, InvalidCacheIndex };
179 uint32 SubObjectConditionalArrayIndex = InvalidCacheIndex;
180 uint32 DependentObjectsInfoArrayIndex = InvalidCacheIndex;
181 uint32 CreationDependencyArrayIndex = InvalidCacheIndex;
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
int32 InternalIndex
Definition VulkanMemory.cpp:4036
Definition ArrayView.h:139
Definition UnrealString.h.inl:34
Definition SparseArray.h:524
Definition NetDependencyData.h:34
FCreationDependencyInfoArray & GetOrCreateCreationDependencyInfoArray(FInternalNetRefIndex ChildIndex)
Definition NetDependencyData.cpp:125
FInternalNetRefIndexArray & GetOrCreateInternalChildSubObjectsArray(FInternalNetRefIndex InternalIndex, FSubObjectConditionalsArray *&OutSubObjectConditionals)
Definition NetDependencyData.cpp:104
void FreeCreationDependencyInfoArray(FInternalNetRefIndex ChildIndex)
Definition NetDependencyData.cpp:144
bool GetInternalChildSubObjectAndConditionalArrays(FInternalNetRefIndex InternalIndex, FInternalNetRefIndexArray *&OutChildSubObjectsArray, FSubObjectConditionalsArray *&OutSubObjectConditionals)
Definition NetDependencyData.h:86
TArrayView< const FDependentObjectInfo > GetDependentObjectInfoArray(FInternalNetRefIndex InternalIndex) const
Definition NetDependencyData.h:71
FInternalNetRefIndexArray * GetInternalIndexArray(FInternalNetRefIndex InternalIndex)
Definition NetDependencyData.h:145
bool GetChildSubObjects(FInternalNetRefIndex InternalIndex, FChildSubObjectsInfo &OutInfo) const
Definition NetDependencyData.h:101
TArrayView< const FInternalNetRefIndex > GetInternalIndexArray(FInternalNetRefIndex InternalIndex) const
Definition NetDependencyData.h:158
FDependentObjectInfoArray * GetDependentObjectInfoArray(FInternalNetRefIndex InternalIndex)
Definition NetDependencyData.h:60
TArray< FInternalNetRefIndex, TInlineAllocator< 8 > > FInternalNetRefIndexArray
Definition NetDependencyData.h:38
const FCreationDependencyInfoArray * GetCreationDependencyInfoArray(FInternalNetRefIndex ChildIndex) const
Definition NetDependencyData.h:133
TArray< FInternalNetRefIndex, TInlineAllocator< 2 > > FCreationDependencyInfoArray
Definition NetDependencyData.h:41
TArray< FDependentObjectInfo, TInlineAllocator< 8 > > FDependentObjectInfoArray
Definition NetDependencyData.h:40
FSubObjectConditionalsArray & GetOrCreateSubObjectConditionalsArray(FInternalNetRefIndex InternalIndex)
Definition NetDependencyData.cpp:79
void FreeStoredDependencyDataForObject(FInternalNetRefIndex InternalIndex)
Definition NetDependencyData.cpp:15
FDependentObjectInfoArray & GetOrCreateDependentObjectInfoArray(FInternalNetRefIndex InternalIndex)
Definition NetDependencyData.cpp:60
FInternalNetRefIndexArray & GetOrCreateInternalIndexArray(FInternalNetRefIndex InternalIndex)
Definition NetDependencyData.h:53
FNetDependencyData()
Definition NetDependencyData.cpp:11
FCreationDependencyInfoArray * GetCreationDependencyInfoArray(FInternalNetRefIndex ChildIndex)
Definition NetDependencyData.h:122
TArray< FLifeTimeConditionStorage, TInlineAllocator< 8 > > FSubObjectConditionalsArray
Definition NetDependencyData.h:39
EArrayType
Definition NetDependencyData.h:44
@ DependentParentObjects
Definition NetDependencyData.h:47
@ CreationDependencies
Definition NetDependencyData.h:48
@ Count
Definition NetDependencyData.h:49
@ SubObjects
Definition NetDependencyData.h:45
@ ChildSubObjects
Definition NetDependencyData.h:46
Definition NetworkVersion.cpp:28
uint32 FInternalNetRefIndex
Definition ReplicationStateStorage.h:20
int8 FLifeTimeConditionStorage
Definition NetDependencyData.h:14
EDependentObjectSchedulingHint
Definition ReplicationSystemTypes.h:37
Definition NetDependencyData.h:21
uint32 NumSubObjects
Definition NetDependencyData.h:24
const FInternalNetRefIndex * ChildSubObjects
Definition NetDependencyData.h:22
const FLifeTimeConditionStorage * SubObjectLifeTimeConditions
Definition NetDependencyData.h:23
Definition NetDependencyData.h:28
EDependentObjectSchedulingHint SchedulingHint
Definition NetDependencyData.h:30
FInternalNetRefIndex NetRefIndex
Definition NetDependencyData.h:29