6#include "Containers/Array.h"
8#include "Containers/Map.h"
20 class FNetRefHandleManager;
120 struct FNetObjectGroupMembership
123 enum { NumInlinedGroupHandles = 2 };
132 void ResetMemberships() { GroupIndexes.
Reset(); }
133 int32 NumMemberships()
const {
return GroupIndexes.
Num(); }
138 static bool AddGroupMembership(FNetObjectGroupMembership& Target, FNetObjectGroupHandle
Group);
139 static void ResetGroupMembership(FNetObjectGroupMembership& Target);
140 static bool IsMemberOf(
const FNetObjectGroupMembership& Target, FNetObjectGroupHandle
Group);
146 bool IsInAnyFilterGroup(
const FNetObjectGroupMembership&
GroupMembership)
const;
152 FNetRefHandleManager* NetRefHandleManager =
nullptr;
161 uint32 MaxGroupCount = 0U;
164 int32 AutogeneratedGroupNameId = 0;
167 FNetBitArray GroupFilteredOutObjects;
173 uint32 NextGroupUniqueId = 1U;
227 return Group->GroupName;
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
#define check(expr)
Definition AssertionMacros.h:314
#define UE_NONCOPYABLE(TypeName)
Definition CoreMiscDefines.h:457
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 ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
void Init()
Definition LockFreeList.h:4
int32 InternalIndex
Definition VulkanMemory.cpp:4036
Definition NameTypes.h:617
CORE_API FString ToString() const
Definition UnrealNames.cpp:3537
Definition ArrayView.h:139
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
bool Contains(const ComparisonType &Item) const
Definition Array.h:1518
SizeType RemoveSingleSwap(const ElementType &Item, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:3211
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition SparseArray.h:524
Definition NetBitArray.h:337
Definition NetObjectGroupHandle.h:22
uint32 FGroupIndexType
Definition NetObjectGroupHandle.h:24
uint32 Index
Definition NetObjectGroupHandle.h:96
uint32 UniqueId
Definition NetObjectGroupHandle.h:98
uint32 Epoch
Definition NetObjectGroupHandle.h:97
bool IsValid() const
Definition NetObjectGroupHandle.h:46
Definition NetObjectGroups.h:52
void ClearGroup(FNetObjectGroupHandle GroupHandle)
Definition NetObjectGroups.cpp:137
void RemoveInclusionFilterTrait(FNetObjectGroupHandle GroupHandle)
Definition NetObjectGroups.cpp:317
void GetGroupHandlesOfNetObject(FInternalNetRefIndex InternalIndex, TArray< FNetObjectGroupHandle > &OutHandles) const
Definition NetObjectGroups.cpp:365
const FNetObjectGroup * GetGroup(FNetObjectGroupHandle GroupHandle) const
Definition NetObjectGroups.cpp:153
void OnMaxInternalNetRefIndexIncreased(FInternalNetRefIndex NewMaxInternalIndex)
Definition NetObjectGroups.cpp:73
FNetObjectGroupHandle GetHandleFromIndex(FNetObjectGroupHandle::FGroupIndexType GroupIndex) const
Definition NetObjectGroups.h:211
FString GetGroupNameString(FNetObjectGroupHandle GroupHandle) const
Definition NetObjectGroups.h:233
bool IsFilterGroup(FNetObjectGroupHandle GroupHandle) const
Definition NetObjectGroups.cpp:329
bool IsExclusionFilterGroup(FNetObjectGroupHandle GroupHandle) const
const TArrayView< const FNetObjectGroupHandle::FGroupIndexType > GetGroupIndexesOfNetObject(FInternalNetRefIndex InternalIndex) const
Definition NetObjectGroups.cpp:355
const FNetBitArrayView GetGroupFilteredOutObjects() const
Definition NetObjectGroups.h:114
const FNetObjectGroup * GetGroupFromIndex(FNetObjectGroupHandle::FGroupIndexType GroupIndex) const
Definition NetObjectGroups.cpp:163
FName GetGroupName(FNetObjectGroupHandle GroupHandle) const
Definition NetObjectGroups.h:223
bool IsValidGroup(FNetObjectGroupHandle GroupHandle) const
Definition NetObjectGroups.h:176
void RemoveFromGroup(FNetObjectGroupHandle GroupHandle, FInternalNetRefIndex InternalIndex)
Definition NetObjectGroups.cpp:229
void DestroyGroup(FNetObjectGroupHandle GroupHandle)
Definition NetObjectGroups.cpp:124
~FNetObjectGroups()
Definition NetObjectGroups.cpp:33
void AddToGroup(FNetObjectGroupHandle GroupHandle, FInternalNetRefIndex InternalIndex)
Definition NetObjectGroups.cpp:193
FNetObjectGroupHandle GetHandleFromGroup(const FNetObjectGroup *InGroup) const
Definition NetObjectGroups.cpp:173
void RemoveExclusionFilterTrait(FNetObjectGroupHandle GroupHandle)
Definition NetObjectGroups.cpp:278
FNetObjectGroups()
Definition NetObjectGroups.cpp:24
FNetObjectGroupHandle FindGroupHandle(FName GroupName) const
Definition NetObjectGroups.h:197
FNetObjectGroupHandle CreateGroup(FName GroupName)
Definition NetObjectGroups.cpp:79
void AddExclusionFilterTrait(FNetObjectGroupHandle GroupHandle)
Definition NetObjectGroups.cpp:259
bool Contains(FNetObjectGroupHandle GroupHandle, FInternalNetRefIndex InternalIndex) const
Definition NetObjectGroups.cpp:179
void AddInclusionFilterTrait(FNetObjectGroupHandle GroupHandle)
Definition NetObjectGroups.cpp:305
bool IsInclusionFilterGroup(FNetObjectGroupHandle GroupHandle) const
Definition NetRefHandleManager.h:72
Definition OverriddenPropertySet.cpp:45
Definition NetworkVersion.cpp:28
@ None
Definition ReplicationDataStreamDebug.h:25
uint32 FInternalNetRefIndex
Definition ReplicationStateStorage.h:20
ENetObjectGroupTraits
Definition NetObjectGroups.h:28
Definition NetworkVersion.cpp:28
FNetBitArrayView MakeNetBitArrayView(const FNetBitArrayView::StorageWordType *Storage, uint32 BitCount)
Definition NetBitArray.h:1677
U16 Index
Definition radfft.cpp:71
Definition NetObjectGroups.h:45
FNetRefHandleManager * NetRefHandleManager
Definition NetObjectGroups.h:46
uint32 MaxInternalNetRefIndex
Definition NetObjectGroups.h:47
uint32 MaxGroupCount
Definition NetObjectGroups.h:48
Definition NetObjectGroups.h:36
uint32 GroupId
Definition NetObjectGroups.h:40
TArray< FInternalNetRefIndex > Members
Definition NetObjectGroups.h:38
FName GroupName
Definition NetObjectGroups.h:39
ENetObjectGroupTraits Traits
Definition NetObjectGroups.h:41