6#include "Containers/Array.h"
16 class FNetBitArrayView;
19 class FNetRefHandleManager;
20 class FReplicationConnections;
63 return GetPrioritiesForConnection(ConnectionId)[
InternalIndex];
67 class FPrioritizerBatchHelper;
68 class FUpdateDirtyObjectsBatchHelper;
73 void UpdatePrioritiesForNewAndDeletedObjects();
76 void NotifyPrioritizersOfDirtyObjects(
const FNetBitArrayView& DirtyObjectsThisFrame);
77 void BatchNotifyPrioritizersOfDirtyObjects(FUpdateDirtyObjectsBatchHelper&
BatchHelper,
uint32* ObjectIndices,
uint32 ObjectCount);
78 void InitPrioritizers();
81 friend UE::Net::FTestNetObjectPrioritizerFixture;
86 struct FPrioritizerInfo
93 struct FPerConnectionInfo
95 FPerConnectionInfo() : NextObjectIndexToProcess(0),
IsValid(0) {}
98 uint32 NextObjectIndexToProcess;
102 static constexpr float DefaultPriority = 1.0f;
103 static constexpr float ViewTargetHighPriority = 1.0E7f;
106 FReplicationConnections* Connections =
nullptr;
107 const FNetRefHandleManager* NetRefHandleManager =
nullptr;
116 FNetBitArray ObjectsWithNewStaticPriority;
120 uint32 ConnectionCount = 0;
121 uint32 HasNewObjectsWithStaticPriority : 1;
126 return MakeArrayView(ConnectionInfos[ConnectionId].Priorities);
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
void Init()
Definition LockFreeList.h:4
UE_FORCEINLINE_HINT bool IsValid(const UObject *Test)
Definition Object.h:1875
int32 InternalIndex
Definition VulkanMemory.cpp:4036
Definition NameTypes.h:617
Definition ArrayView.h:139
Definition StrongObjectPtrTemplates.h:26
Definition NetBitArray.h:337
Definition NetRefHandleManager.h:72
Definition ReplicationConnections.h:32
Definition ReplicationPrioritization.h:41
bool SetPrioritizer(uint32 ObjectIndex, FNetObjectPrioritizerHandle Prioritizer)
Definition ReplicationPrioritization.cpp:414
void AddConnection(uint32 ConnectionId)
Definition ReplicationPrioritization.cpp:617
float GetObjectPriorityForConnection(uint32 ConnectionId, FInternalNetRefIndex InternalIndex) const
Definition ReplicationPrioritization.h:61
FReplicationPrioritization()
Definition ReplicationPrioritization.cpp:285
UNetObjectPrioritizer * GetPrioritizer(const FName PrioritizerName) const
Definition ReplicationPrioritization.cpp:496
FNetObjectPrioritizerHandle GetPrioritizerHandle(const FName PrioritizerName) const
Definition ReplicationPrioritization.cpp:474
void OnMaxInternalNetRefIndexIncreased(FInternalNetRefIndex NewMaxInternalIndex)
Definition ReplicationPrioritization.cpp:367
void Deinit()
Definition ReplicationPrioritization.cpp:309
void Prioritize(const FNetBitArrayView &ConnectionsToSend, const FNetBitArrayView &DirtyObjectsThisFrame)
Definition ReplicationPrioritization.cpp:545
void RemoveConnection(uint32 ConnectionId)
Definition ReplicationPrioritization.cpp:636
void SetStaticPriority(uint32 ObjectIndex, float Prio)
Definition ReplicationPrioritization.cpp:387
Definition NetObjectPrioritizerDefinitions.h:44
Definition NetObjectPrioritizer.h:158
Definition ReplicationSystem.h:70
Definition OverriddenPropertySet.cpp:45
Definition NetworkVersion.cpp:28
uint32 FInternalNetRefIndex
Definition ReplicationStateStorage.h:20
Definition NetworkVersion.cpp:28
uint32 FNetObjectPrioritizerHandle
Definition ObjectReplicationBridge.h:34
Definition ObjectPtr.h:488
Definition ReplicationView.h:19
Definition ReplicationPrioritization.h:33
FReplicationConnections * Connections
Definition ReplicationPrioritization.h:36
const FNetRefHandleManager * NetRefHandleManager
Definition ReplicationPrioritization.h:35
TObjectPtr< const UReplicationSystem > ReplicationSystem
Definition ReplicationPrioritization.h:34
FInternalNetRefIndex MaxInternalNetRefIndex
Definition ReplicationPrioritization.h:37