20namespace FastArrayPollingPolicies
63 template <
typename FastArrayType,
typename ItemArrayType>
67 template <
typename FastArrayType,
typename ItemArrayType>
86 template<
typename FastArrayType>
96 template<
typename FastArrayType>
176template <
typename FastArrayType,
typename ItemArrayType>
179 typedef typename ItemArrayType::ElementType ItemType;
181 if (bForceRebuild || ArraySerializer.ItemMap.Num() != Items.Num())
185 ArraySerializer.ItemMap.Reset();
187 const ItemType*
SrcItems = Items.GetData();
190 const ItemType& Item =
SrcItems[It];
196 ArraySerializer.ItemMap.Add(Item.ReplicationID, It);
201template <
typename FastArrayType,
typename ItemArrayType>
204 typedef typename ItemArrayType::ElementType ItemType;
210 const uint32* ChangeMaskData =
Context.StateBufferData.ChangeMaskData;
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define CSV_SCOPED_TIMING_STAT(Category, StatName)
Definition CsvProfiler.h:150
#define CSV_DECLARE_CATEGORY_MODULE_EXTERN(Module_API, CategoryName)
Definition CsvProfiler.h:80
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition RefCounting.h:454
Definition UniquePtr.h:107
Definition ReplicationFragment.h:244
Definition NetBitArray.h:337
Definition NetSerializationContext.h:31
Definition ReplicationFragment.h:176
Definition ReplicationFragment.h:32
Definition FastArrayReplicationFragmentInternal.h:38
FPollingState * GetPollingState()
Definition FastArrayReplicationFragmentInternal.h:40
Definition FastArrayReplicationFragmentInternal.h:49
FPollingState * GetPollingState()
Definition FastArrayReplicationFragmentInternal.h:51
Definition FastArrayReplicationFragmentInternal.h:101
static IRISCORE_API void InternalDequantizeExtraProperties(FNetSerializationContext &Context, uint8 *RESTRICT DstExternalBuffer, const uint8 *RESTRICT SrcInternalBuffer, const FReplicationStateDescriptor *Descriptor)
Definition FastArrayReplicationFragment.cpp:183
static IRISCORE_API void InternalCopyArrayElement(const FReplicationStateDescriptor *ArrayElementDescriptor, void *RESTRICT Dst, const void *RESTRICT Src)
Definition FastArrayReplicationFragment.cpp:116
TRefCountPtr< const FReplicationStateDescriptor > ReplicationStateDescriptor
Definition FastArrayReplicationFragmentInternal.h:139
static IRISCORE_API void InternalDequantizeFastArray(FNetSerializationContext &Context, uint8 *RESTRICT DstExternalBuffer, const uint8 *RESTRICT SrcInternalBuffer, const FReplicationStateDescriptor *FastArrayPropertyDescriptor)
Definition FastArrayReplicationFragment.cpp:132
IRISCORE_API const FReplicationStateDescriptor * GetArrayElementDescriptor() const
Definition FastArrayReplicationFragment.cpp:103
IRISCORE_API const FReplicationStateDescriptor * GetFastArrayPropertyStructDescriptor() const
Definition FastArrayReplicationFragment.cpp:19
virtual IRISCORE_API void CollectOwner(FReplicationStateOwnerCollector *Owners) const override
Definition FastArrayReplicationFragment.cpp:213
static IRISCORE_API void ToString(FStringBuilderBase &StringBuilder, const uint8 *ExternalStateBuffer, const FReplicationStateDescriptor *FastArrayPropertyDescriptor)
Definition FastArrayReplicationFragment.cpp:218
TUniquePtr< FPropertyReplicationState > ReplicationState
Definition FastArrayReplicationFragmentInternal.h:142
static IRISCORE_API void InternalPartialDequantizeFastArray(FReplicationStateApplyContext &Context, uint8 *RESTRICT DstExternalBuffer, const uint8 *RESTRICT SrcInternalBuffer, const FReplicationStateDescriptor *FastArrayPropertyDescriptor)
Definition FastArrayReplicationFragment.cpp:154
UObject * Owner
Definition FastArrayReplicationFragmentInternal.h:145
virtual IRISCORE_API ~FFastArrayReplicationFragmentBase()
SIZE_T WrappedArrayOffsetRelativeFastArraySerializerProperty
Definition FastArrayReplicationFragmentInternal.h:148
static IRISCORE_API bool InternalCompareArrayElement(const FReplicationStateDescriptor *ArrayElementDescriptor, void *RESTRICT Dst, const void *RESTRICT Src)
Definition FastArrayReplicationFragment.cpp:121
Definition FastArrayReplicationFragmentInternal.h:153
static IRISCORE_API void InternalDequantizeFastArray(FNetSerializationContext &Context, uint8 *RESTRICT DstExternalBuffer, const uint8 *RESTRICT SrcInternalBuffer, const FReplicationStateDescriptor *FastArrayPropertyDescriptor)
Definition FastArrayReplicationFragment.cpp:318
UObject * Owner
Definition FastArrayReplicationFragmentInternal.h:170
IRISCORE_API const FReplicationStateDescriptor * GetFastArrayPropertyStructDescriptor() const
Definition FastArrayReplicationFragment.cpp:250
IRISCORE_API const FReplicationStateDescriptor * GetArrayElementDescriptor() const
Definition FastArrayReplicationFragment.cpp:305
static IRISCORE_API void ToString(FStringBuilderBase &StringBuilder, const uint8 *ExternalStateBuffer, const FReplicationStateDescriptor *FastArrayPropertyDescriptor)
Definition FastArrayReplicationFragment.cpp:340
SIZE_T WrappedArrayOffsetRelativeFastArraySerializerProperty
Definition FastArrayReplicationFragmentInternal.h:173
virtual IRISCORE_API void CollectOwner(FReplicationStateOwnerCollector *Owners) const override
Definition FastArrayReplicationFragment.cpp:358
TRefCountPtr< const FReplicationStateDescriptor > ReplicationStateDescriptor
Definition FastArrayReplicationFragmentInternal.h:167
Definition OverriddenPropertySet.cpp:45
Definition NetworkVersion.cpp:28
EReplicationFragmentTraits
Definition ReplicationFragment.h:102
FNetBitArrayView MakeNetBitArrayView(const FNetBitArrayView::StorageWordType *Storage, uint32 BitCount)
Definition NetBitArray.h:1677
Definition FastArraySerializer.h:522
@ IrisFastArrayChangeMaskBitOffset
Definition IrisFastArraySerializer.h:30
Definition ReplicationFragment.h:66
Definition ReplicationStateDescriptor.h:199
Definition ReplicationStateDescriptor.h:77
uint16 BitOffset
Definition ReplicationStateDescriptor.h:78
Definition FastArrayReplicationFragmentInternal.h:27
int32 ReplicationID
Definition FastArrayReplicationFragmentInternal.h:29
int32 ReplicationKey
Definition FastArrayReplicationFragmentInternal.h:28
Definition FastArrayReplicationFragmentInternal.h:24
int32 ArrayReplicationKey
Definition FastArrayReplicationFragmentInternal.h:25
TArray< FEntry > ItemPollData
Definition FastArrayReplicationFragmentInternal.h:31
Definition FastArrayReplicationFragmentInternal.h:61
static void ConditionalRebuildItemMap(FastArrayType &ArraySerializer, const ItemArrayType &Items, bool bForceRebuild)
Definition FastArrayReplicationFragmentInternal.h:177
static TEnableIf<!TModels_V< FFastArraySerializer::CPostReplicatedReceiveFuncable, FastArrayType, constFFastArraySerializer::FPostReplicatedReceiveParameters & >, void >::Type CallPostReplicatedReceiveOrNot(FastArrayType &ArraySerializer, int32 OldArraySize, bool bHasUnresolvedReferences)
Definition FastArrayReplicationFragmentInternal.h:97
static IRISCORE_API bool InternalCompareArrayElement(const FReplicationStateDescriptor *ArrayElementDescriptor, void *RESTRICT Dst, const void *RESTRICT Src)
Definition FastArrayReplicationFragment.cpp:376
static TEnableIf< TModels_V< FFastArraySerializer::CPostReplicatedReceiveFuncable, FastArrayType, constFFastArraySerializer::FPostReplicatedReceiveParameters & >, void >::Type CallPostReplicatedReceiveOrNot(FastArrayType &ArraySerializer, int32 OldArraySize, bool bHasUnresolvedReferences)
Definition FastArrayReplicationFragmentInternal.h:87
static IRISCORE_API void InternalApplyArrayElement(const FReplicationStateDescriptor *ArrayElementDescriptor, void *RESTRICT Dst, const void *RESTRICT Src)
Definition FastArrayReplicationFragment.cpp:366
static IRISCORE_API void InternalCopyArrayElement(const FReplicationStateDescriptor *ArrayElementDescriptor, void *RESTRICT Dst, const void *RESTRICT Src)
Definition FastArrayReplicationFragment.cpp:371
static IRISCORE_API uint32 GetFastArrayStructItemArrayMemberIndex(const FReplicationStateDescriptor *StructDescriptor)
Definition FastArrayReplicationFragment.cpp:236
static void ApplyReplicatedState(FastArrayType *DstFastArray, ItemArrayType *DstWrappedArray, FastArrayType *SrcFastArray, const ItemArrayType *SrcWrappedArray, const FReplicationStateDescriptor *ArrayElementDescriptor, FReplicationStateApplyContext &Context)
Definition FastArrayReplicationFragmentInternal.h:202