26template <
typename FastArrayItemType,
typename FastArrayType>
80template <
typename FastArrayItemType,
typename FastArrayType,
typename PollingPolicyType = FastArrayPollingPolicies::FNoPollingPolicy>
112template <
typename FastArrayItemType,
typename FastArrayType>
121template <
typename FastArrayItemType,
typename FastArrayType>
130 InternalPartialDequantizeFastArray(
Context,
reinterpret_cast<uint8*
>(AccumulatedReceivedState.Get()),
Context.StateBufferData.RawStateBuffer, GetFastArrayPropertyStructDescriptor());
140template <
typename FastArrayItemType,
typename FastArrayType>
144 InternalDequantizeExtraProperties(*
Context.NetSerializationContext,
reinterpret_cast<uint8*
>(GetFastArraySerializerFromOwner()),
Context.StateBufferData.RawStateBuffer, GetFastArrayPropertyStructDescriptor());
147template <
typename FastArrayItemType,
typename FastArrayType>
150 return reinterpret_cast<FastArrayType*
>(
reinterpret_cast<uint8*
>(
Owner) + ReplicationStateDescriptor->MemberProperties[0]->GetOffset_ForGC());
153template <
typename FastArrayItemType,
typename FastArrayType>
156 return reinterpret_cast<FastArrayType*
>(
Context.StateBufferData.ExternalStateBuffer + ReplicationStateDescriptor->MemberDescriptors[0].ExternalMemberOffset);
159template <
typename FastArrayItemType,
typename FastArrayType>
163 return ReplicationState ?
reinterpret_cast<FastArrayType*
>(ReplicationState->GetStateBuffer() + ReplicationStateDescriptor->MemberDescriptors[0].ExternalMemberOffset) :
nullptr;
166template <
typename FastArrayItemType,
typename FastArrayType>
191template <
typename FastArrayItemType,
typename FastArrayType>
250 const bool bIsWritingOnClient =
false;
265 if (ChangeMaskBitCount)
299template <
typename FastArrayItemType,
typename FastArrayType>
306 InternalDequantizeFastArray(*
Context.NetSerializationContext,
reinterpret_cast<uint8*
>(&
ReceivedState),
Context.StateBufferData.RawStateBuffer, GetFastArrayPropertyStructDescriptor());
309 ToString(StringBuilder,
reinterpret_cast<uint8*
>(&
ReceivedState), GetFastArrayPropertyStructDescriptor());
312template <
typename FastArrayItemType,
typename FastArrayType>
316 return Private::FReplicationStateHeaderAccessor::GetIsStateDirty(ReplicationStateHeader);
319template <
typename FastArrayItemType,
typename FastArrayType>
323 bool bIsStateDirty = Private::FReplicationStateHeaderAccessor::GetIsStateDirty(ReplicationStateHeader);
327template <
typename FastArrayItemType,
typename FastArrayType>
339template <
typename FastArrayItemType,
typename FastArrayType>
352 InternalDequantizeFastArray(*
Context.NetSerializationContext,
reinterpret_cast<uint8*
>(&
ReceivedState),
Context.StateBufferData.RawStateBuffer, GetFastArrayPropertyStructDescriptor());
353 InternalDequantizeExtraProperties(*
Context.NetSerializationContext,
reinterpret_cast<uint8*
>(&
ReceivedState),
Context.StateBufferData.RawStateBuffer, GetFastArrayPropertyStructDescriptor());
360 Owner->ProcessEvent(
const_cast<UFunction*
>(RepNotifyFunction),
nullptr);
367template <
typename FastArrayItemType,
typename FastArrayType,
typename PollingPolicyType>
378template <
typename FastArrayItemType,
typename FastArrayType,
typename PollingPolicyType>
382 Context.RegisterReplicationFragment(
this, ReplicationStateDescriptor.GetReference(),
reinterpret_cast<uint8*
>(GetFastArraySerializerFromOwner()));
385template <
typename FastArrayItemType,
typename FastArrayType,
typename PollingPolicyType>
398 InternalDequantizeFastArray(*
Context.NetSerializationContext,
reinterpret_cast<uint8*
>(&
ReceivedState),
Context.StateBufferData.RawStateBuffer, GetFastArrayPropertyStructDescriptor());
405 Owner->ProcessEvent(
const_cast<UFunction*
>(RepNotifyFunction),
nullptr);
409template <
typename FastArrayItemType,
typename FastArrayType,
typename PollingPolicyType>
424template <
typename FastArrayItemType,
typename FastArrayType,
typename PollingPolicyType>
428 if (FPollingState* PollingState = PollingPolicy.GetPollingState())
443 if (PollingState->ItemPollData.Num() != ElementCount)
445 PollingState->ItemPollData.SetNum(ElementCount);
458 FPollingState::FEntry*
DstItems = PollingState->ItemPollData.GetData();
467 const bool bIsWritingOnClient =
false;
481 if (ChangeMaskBitCount)
490 ensureMsgf(
false,
TEXT(
"Native IrisFastArraySerializer does not support local non-replicated items, use FastArraySerializer intead if this is required."));
499 if (ChangeMaskBitCount)
524template <
typename FastArrayItemType,
typename FastArrayType,
typename PollingPolicyType>
529 return Private::FReplicationStateHeaderAccessor::GetIsStateDirty(ReplicationStateHeader);
532template <
typename FastArrayItemType,
typename FastArrayType,
typename PollingPolicyType>
540 InternalDequantizeFastArray(*
Context.NetSerializationContext,
reinterpret_cast<uint8*
>(&
ReceivedState),
Context.StateBufferData.RawStateBuffer, GetFastArrayPropertyStructDescriptor());
543 FastArrayType*
DstArraySerializer =
reinterpret_cast<FastArrayType*
>(
reinterpret_cast<uint8*
>(
Owner) + ReplicationStateDescriptor->MemberProperties[0]->GetOffset_ForGC());
554template <
typename FastArrayItemType,
typename FastArrayType,
typename PollingPolicyType>
561 InternalDequantizeFastArray(*
Context.NetSerializationContext,
reinterpret_cast<uint8*
>(&
ReceivedState),
Context.StateBufferData.RawStateBuffer, GetFastArrayPropertyStructDescriptor());
564 ToString(StringBuilder,
reinterpret_cast<uint8*
>(&
ReceivedState), GetFastArrayPropertyStructDescriptor());
567template <
typename FastArrayItemType,
typename FastArrayType,
typename PollingPolicyType>
570 return reinterpret_cast<FastArrayType*
>(
reinterpret_cast<uint8*
>(
Owner) + ReplicationStateDescriptor->MemberProperties[0]->GetOffset_ForGC());
575template <
typename FastArrayType>
586 if (FFragmentType* Fragment =
new FFragmentType(
Context.GetFragmentTraits(),
Owner, Descriptor))
596 if (FFragmentType* Fragment =
new FFragmentType(
Context.GetFragmentTraits(),
Owner, Descriptor))
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
#define IRIS_PROFILER_PROTOCOL_NAME(X)
Definition IrisProfiler.h:58
virtual bool Identical(const void *A, const void *B, uint32 PortFlags=0) const PURE_VIRTUAL(FProperty
Definition UnrealType.h:515
static constexpr bool HasValidFastArrayItemType()
Definition FastArraySerializer.h:259
Definition UniquePtr.h:107
Definition ReplicationFragment.h:244
Definition NetBitArray.h:337
bool IsAnyBitSet() const
Definition NetBitArray.h:1460
bool GetBit(uint32 Index) const
Definition NetBitArray.h:1537
Definition ReplicationFragment.h:176
EReplicationFragmentTraits Traits
Definition ReplicationFragment.h:216
Definition FastArrayReplicationFragmentInternal.h:38
Definition FastArrayReplicationFragmentInternal.h:101
IRISCORE_API void Register(FFragmentRegistrationContext &Context, EReplicationFragmentTraits InTraits)
Definition FastArrayReplicationFragment.cpp:126
Definition FastArrayReplicationFragmentInternal.h:153
Definition FastArrayReplicationFragment.h:28
TUniquePtr< FastArrayType > AccumulatedReceivedState
Definition FastArrayReplicationFragment.h:69
void ApplyReplicatedStateForExtraProperties(FReplicationStateApplyContext &Context) const
Definition FastArrayReplicationFragment.h:141
void MarkDirty()
Definition FastArrayReplicationFragment.h:328
bool IsDirty() const
Definition FastArrayReplicationFragment.h:313
TFastArrayReplicationFragment(EReplicationFragmentTraits InTraits, UObject *InOwner, const FReplicationStateDescriptor *InDescriptor, const EAllowAdditionalPropertiesType)
Definition FastArrayReplicationFragment.h:35
virtual void ReplicatedStateToString(FStringBuilderBase &StringBuilder, FReplicationStateApplyContext &Context, EReplicationStateToStringFlags Flags) const override
Definition FastArrayReplicationFragment.h:300
bool PollAllState(bool bForceFullCompare=false)
Definition FastArrayReplicationFragment.h:192
virtual void ApplyReplicatedState(FReplicationStateApplyContext &Context) const override
Definition FastArrayReplicationFragment.h:122
TArray< FastArrayItemType > ItemArrayType
Definition FastArrayReplicationFragment.h:30
EAllowAdditionalPropertiesType
Definition FastArrayReplicationFragment.h:34
@ AllowAdditionalProperties
Definition FastArrayReplicationFragment.h:34
bool IsDirtyForPolling() const
Definition FastArrayReplicationFragment.h:320
FastArrayType * GetFastArraySerializerFromReplicationState() const
Definition FastArrayReplicationFragment.h:160
FastArrayType * GetFastArraySerializerFromApplyContext(FReplicationStateApplyContext &Context) const
Definition FastArrayReplicationFragment.h:154
TFastArrayReplicationFragment(EReplicationFragmentTraits InTraits, UObject *InOwner, const FReplicationStateDescriptor *InDescriptor, bool bValidateDescriptor=true)
Definition FastArrayReplicationFragment.h:113
virtual void CallRepNotifies(FReplicationStateApplyContext &Context) override
Definition FastArrayReplicationFragment.h:340
FastArrayType * GetFastArraySerializerFromOwner() const
Definition FastArrayReplicationFragment.h:148
virtual bool PollReplicatedState(EReplicationFragmentPollFlags PollOption) override
Definition FastArrayReplicationFragment.h:167
Definition FastArrayReplicationFragment.h:82
virtual void ReplicatedStateToString(FStringBuilderBase &StringBuilder, FReplicationStateApplyContext &Context, EReplicationStateToStringFlags Flags) const override
Definition FastArrayReplicationFragment.h:555
virtual bool PollReplicatedState(EReplicationFragmentPollFlags PollOption) override
Definition FastArrayReplicationFragment.h:410
bool IsDirty() const
Definition FastArrayReplicationFragment.h:525
FastArrayType * GetFastArraySerializerFromOwner() const
Definition FastArrayReplicationFragment.h:568
TNativeFastArrayReplicationFragment(EReplicationFragmentTraits InTraits, UObject *InOwner, const FReplicationStateDescriptor *InDescriptor)
Definition FastArrayReplicationFragment.h:368
TArray< FastArrayItemType > ItemArrayType
Definition FastArrayReplicationFragment.h:84
void Register(FFragmentRegistrationContext &Fragments, EReplicationFragmentTraits Traits=EReplicationFragmentTraits::None)
Definition FastArrayReplicationFragment.h:379
bool PollAllState()
Definition FastArrayReplicationFragment.h:425
virtual void ApplyReplicatedState(FReplicationStateApplyContext &Context) const override
Definition FastArrayReplicationFragment.h:533
virtual void CallRepNotifies(FReplicationStateApplyContext &Context) override
Definition FastArrayReplicationFragment.h:386
Definition OverriddenPropertySet.cpp:45
UE::Net::FReplicationStateHeader & GetReplicationStateHeader(void *StateBuffer, const FReplicationStateDescriptor *Descriptor)
Definition ReplicationStateUtil.h:28
FNetBitArrayView GetMemberPollMask(uint8 *StateBuffer, const FReplicationStateDescriptor *Descriptor)
Definition ReplicationStateUtil.h:59
FNetBitArrayView GetMemberChangeMask(uint8 *StateBuffer, const FReplicationStateDescriptor *Descriptor)
Definition ReplicationStateUtil.h:43
Definition NetworkVersion.cpp:28
EReplicationStateToStringFlags
Definition ReplicationFragment.h:94
EReplicationFragmentPollFlags
Definition ReplicationFragment.h:153
@ ForceRefreshCachedObjectReferencesAfterGC
EReplicationFragmentTraits
Definition ReplicationFragment.h:102
@ DeleteWithInstanceProtocol
void MarkNetObjectStateHeaderDirty(FReplicationStateHeader &Header)
Definition ReplicationStateUtil.h:15
@ IsNativeFastArrayReplicationState
@ HasLifetimeConditionals
@ false
Definition radaudio_common.h:23
@ IrisFastArrayChangeMaskBitOffset
Definition IrisFastArraySerializer.h:30
@ IrisFastArrayPropertyBitIndex
Definition IrisFastArraySerializer.h:31
Definition UnrealTemplate.h:341
Definition UnrealTypeTraits.h:40
Definition ReplicationFragment.h:66
Definition ReplicationStateDescriptor.h:199
const FReplicationStateMemberPropertyDescriptor * MemberPropertyDescriptors
Definition ReplicationStateDescriptor.h:226
const FProperty ** MemberProperties
Definition ReplicationStateDescriptor.h:222
EReplicationStateTraits Traits
Definition ReplicationStateDescriptor.h:274
Definition ReplicationStateDescriptor.h:77
uint16 BitOffset
Definition ReplicationStateDescriptor.h:78
Definition ReplicationStateDescriptor.h:30
const UFunction * RepNotifyFunction
Definition ReplicationStateDescriptor.h:155
Definition FastArrayReplicationFragmentInternal.h:24
static void ApplyReplicatedState(FastArrayType *DstFastArray, ItemArrayType *DstWrappedArray, FastArrayType *SrcFastArray, const ItemArrayType *SrcWrappedArray, const FReplicationStateDescriptor *ArrayElementDescriptor, FReplicationStateApplyContext &Context)
Definition FastArrayReplicationFragmentInternal.h:202
static IRISCORE_API FNetBitArrayView GetChangeMask(FIrisFastArraySerializer &Array)
Definition IrisFastArraySerializer.cpp:95
static IRISCORE_API void MarkArrayDirty(FIrisFastArraySerializer &Array)
Definition IrisFastArraySerializer.cpp:125
static FReplicationStateHeader & GetReplicationStateHeader(FIrisFastArraySerializer &Array)
Definition IrisFastArraySerializerInternal.h:25
static IRISCORE_API FNetBitArrayView GetConditionalChangeMask(FIrisFastArraySerializer &Array)
Definition IrisFastArraySerializer.cpp:100