UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Net::Private::FReplicationFiltering Class Reference

#include <ReplicationFiltering.h>

Classes

class  FUpdateDirtyObjectsBatchHelper
 

Public Member Functions

 FReplicationFiltering ()
 
void Init (FReplicationFilteringInitParams &Params)
 
void Deinit ()
 
void OnMaxInternalNetRefIndexIncreased (FInternalNetRefIndex NewMaxInternalIndex)
 
void OnInternalNetRefIndicesFreed (const TConstArrayView< FInternalNetRefIndex > &FreedIndices)
 
void Filter ()
 
const FNetBitArrayView GetRelevantObjectsInScope (uint32 ConnectionId) const
 
const FNetBitArrayView GetGroupFilteredOutObjects (uint32 ConnectionId) const
 
void SetOwningConnection (FInternalNetRefIndex ObjectIndex, uint32 ConnectionId)
 
uint32 GetOwningConnection (FInternalNetRefIndex ObjectIndex) const
 
bool SetFilter (FInternalNetRefIndex ObjectIndex, FNetObjectFilterHandle Filter, FName FilterConfigProfile)
 
bool IsUsingSpatialFilter (FInternalNetRefIndex ObjectIndex) const
 
FNetObjectFilterHandle GetFilterHandle (const FName FilterName) const
 
UNetObjectFilterGetFilter (const FName FilterName) const
 
FName GetFilterName (FNetObjectFilterHandle Filter) const
 
void BuildAlwaysRelevantList (FNetBitArrayView OutAlwaysRelevantList, const FNetBitArrayView ScopeList) const
 
void BuildObjectsInFilterList (FNetBitArrayView OutObjectsInFilter, FName FilterName) const
 
void AddConnection (uint32 ConnectionId)
 
void RemoveConnection (uint32 ConnectionId)
 
bool AddExclusionFilterGroup (FNetObjectGroupHandle GroupHandle)
 
bool AddInclusionFilterGroup (FNetObjectGroupHandle GroupHandle)
 
void RemoveGroupFilter (FNetObjectGroupHandle GroupHandle)
 
bool IsExclusionFilterGroup (FNetObjectGroupHandle GroupHandle) const
 
bool IsInclusionFilterGroup (FNetObjectGroupHandle GroupHandle) const
 
void SetGroupFilterStatus (FNetObjectGroupHandle GroupHandle, ENetFilterStatus ReplicationStatus)
 
void SetGroupFilterStatus (FNetObjectGroupHandle GroupHandle, const FNetBitArrayView &ConnectionsBitArray, ENetFilterStatus)
 
void SetGroupFilterStatus (FNetObjectGroupHandle GroupHandle, uint32 ConnectionId, ENetFilterStatus ReplicationStatus)
 
bool GetGroupFilterStatus (FNetObjectGroupHandle GroupHandle, uint32 ConnectionId, ENetFilterStatus &OutReplicationStatus) const
 
void NotifyObjectAddedToGroup (FNetObjectGroupHandle GroupHandle, FInternalNetRefIndex ObjectIndex)
 
void NotifyObjectRemovedFromGroup (FNetObjectGroupHandle GroupHandle, FInternalNetRefIndex ObjectIndex)
 
void NotifyAddedDependentObject (FInternalNetRefIndex ObjectIndex)
 
void NotifyRemovedDependentObject (FInternalNetRefIndex ObjectIndex)
 
void AddSubObjectFilter (FNetObjectGroupHandle GroupHandle)
 
void RemoveSubObjectFilter (FNetObjectGroupHandle GroupHandle)
 
bool IsSubObjectFilterGroup (FNetObjectGroupHandle GroupHandle) const
 
void SetSubObjectFilterStatus (FNetObjectGroupHandle GroupHandle, FConnectionHandle ConnectionHandle, ENetFilterStatus ReplicationStatus)
 
bool GetSubObjectFilterStatus (FNetObjectGroupHandle GroupHandle, uint32 ParentConnectionId, ENetFilterStatus &OutReplicationStatus) const
 
FString PrintFilterObjectInfo (FInternalNetRefIndex ObjectIndex, uint32 ConnectionId) const
 

Constructor & Destructor Documentation

◆ FReplicationFiltering()

UE::Net::Private::FReplicationFiltering::FReplicationFiltering ( )

Member Function Documentation

◆ AddConnection()

void UE::Net::Private::FReplicationFiltering::AddConnection ( uint32  ConnectionId)

◆ AddExclusionFilterGroup()

bool UE::Net::Private::FReplicationFiltering::AddExclusionFilterGroup ( FNetObjectGroupHandle  GroupHandle)

◆ AddInclusionFilterGroup()

bool UE::Net::Private::FReplicationFiltering::AddInclusionFilterGroup ( FNetObjectGroupHandle  GroupHandle)

◆ AddSubObjectFilter()

void UE::Net::Private::FReplicationFiltering::AddSubObjectFilter ( FNetObjectGroupHandle  GroupHandle)

◆ BuildAlwaysRelevantList()

void UE::Net::Private::FReplicationFiltering::BuildAlwaysRelevantList ( FNetBitArrayView  OutAlwaysRelevantList,
const FNetBitArrayView  ScopeList 
) const

Fill the passed in list with root objects considered always relevant

◆ BuildObjectsInFilterList()

void UE::Net::Private::FReplicationFiltering::BuildObjectsInFilterList ( FNetBitArrayView  OutObjectsInFilter,
FName  FilterName 
) const

Fill the passed in list with objects affected by a given filter

◆ Deinit()

void UE::Net::Private::FReplicationFiltering::Deinit ( )

◆ Filter()

void UE::Net::Private::FReplicationFiltering::Filter ( )

Executes group, owner and connection filtering then any dynamic filters. At the end any object that is not relevant to at least one connection will be removed from the scoped object list. Exception to this rule are always relevant (e.g. non-filtered) objects.

◆ GetFilter()

UNetObjectFilter * UE::Net::Private::FReplicationFiltering::GetFilter ( const FName  FilterName) const

◆ GetFilterHandle()

FNetObjectFilterHandle UE::Net::Private::FReplicationFiltering::GetFilterHandle ( const FName  FilterName) const

◆ GetFilterName()

FName UE::Net::Private::FReplicationFiltering::GetFilterName ( FNetObjectFilterHandle  Filter) const

Returns the name of the Filter represented by the handle.

◆ GetGroupFilteredOutObjects()

const FNetBitArrayView UE::Net::Private::FReplicationFiltering::GetGroupFilteredOutObjects ( uint32  ConnectionId) const
inline

◆ GetGroupFilterStatus()

bool UE::Net::Private::FReplicationFiltering::GetGroupFilterStatus ( FNetObjectGroupHandle  GroupHandle,
uint32  ConnectionId,
ENetFilterStatus OutReplicationStatus 
) const

◆ GetOwningConnection()

uint32 UE::Net::Private::FReplicationFiltering::GetOwningConnection ( FInternalNetRefIndex  ObjectIndex) const
inline

◆ GetRelevantObjectsInScope()

const FNetBitArrayView UE::Net::Private::FReplicationFiltering::GetRelevantObjectsInScope ( uint32  ConnectionId) const
inline

Returns the list of objects relevant to a given connection. This represents the global scope list minus the objects that were filtered out for the given connection.

◆ GetSubObjectFilterStatus()

bool UE::Net::Private::FReplicationFiltering::GetSubObjectFilterStatus ( FNetObjectGroupHandle  GroupHandle,
uint32  ParentConnectionId,
ENetFilterStatus OutReplicationStatus 
) const

◆ Init()

void UE::Net::Private::FReplicationFiltering::Init ( FReplicationFilteringInitParams Params)

◆ IsExclusionFilterGroup()

bool UE::Net::Private::FReplicationFiltering::IsExclusionFilterGroup ( FNetObjectGroupHandle  GroupHandle) const
inline

◆ IsInclusionFilterGroup()

bool UE::Net::Private::FReplicationFiltering::IsInclusionFilterGroup ( FNetObjectGroupHandle  GroupHandle) const
inline

◆ IsSubObjectFilterGroup()

bool UE::Net::Private::FReplicationFiltering::IsSubObjectFilterGroup ( FNetObjectGroupHandle  GroupHandle) const
inline

◆ IsUsingSpatialFilter()

bool UE::Net::Private::FReplicationFiltering::IsUsingSpatialFilter ( FInternalNetRefIndex  ObjectIndex) const

Returns true if the object is part of a filter with the ENetFilterTraits::Spatial trait. Indicates that the object is location filtered.

◆ NotifyAddedDependentObject()

void UE::Net::Private::FReplicationFiltering::NotifyAddedDependentObject ( FInternalNetRefIndex  ObjectIndex)

◆ NotifyObjectAddedToGroup()

void UE::Net::Private::FReplicationFiltering::NotifyObjectAddedToGroup ( FNetObjectGroupHandle  GroupHandle,
FInternalNetRefIndex  ObjectIndex 
)

◆ NotifyObjectRemovedFromGroup()

void UE::Net::Private::FReplicationFiltering::NotifyObjectRemovedFromGroup ( FNetObjectGroupHandle  GroupHandle,
FInternalNetRefIndex  ObjectIndex 
)

◆ NotifyRemovedDependentObject()

void UE::Net::Private::FReplicationFiltering::NotifyRemovedDependentObject ( FInternalNetRefIndex  ObjectIndex)

◆ OnInternalNetRefIndicesFreed()

void UE::Net::Private::FReplicationFiltering::OnInternalNetRefIndicesFreed ( const TConstArrayView< FInternalNetRefIndex > &  FreedIndices)

Called when when one or more NetRefInternalIndices have been freed and can be re-assigned to new objects.

◆ OnMaxInternalNetRefIndexIncreased()

void UE::Net::Private::FReplicationFiltering::OnMaxInternalNetRefIndexIncreased ( FInternalNetRefIndex  NewMaxInternalIndex)

Called when the maximum InternalNetRefIndex increased and we need to realloc our lists

◆ PrintFilterObjectInfo()

FString UE::Net::Private::FReplicationFiltering::PrintFilterObjectInfo ( FInternalNetRefIndex  ObjectIndex,
uint32  ConnectionId 
) const

Print the filter information we have regarding the passed ObjectIndex and his relation to the passed Connection

◆ RemoveConnection()

void UE::Net::Private::FReplicationFiltering::RemoveConnection ( uint32  ConnectionId)

◆ RemoveGroupFilter()

void UE::Net::Private::FReplicationFiltering::RemoveGroupFilter ( FNetObjectGroupHandle  GroupHandle)

◆ RemoveSubObjectFilter()

void UE::Net::Private::FReplicationFiltering::RemoveSubObjectFilter ( FNetObjectGroupHandle  GroupHandle)

◆ SetFilter()

bool UE::Net::Private::FReplicationFiltering::SetFilter ( FInternalNetRefIndex  ObjectIndex,
FNetObjectFilterHandle  Filter,
FName  FilterConfigProfile 
)

Setup an object to be filtered by the passed filter handle.

Parameters
ObjectIndexThe object that wants to be filtered
FilterThe handle to the filter to add the object into
FilterConfigProfileOptional profile name that can be used to specialize the filter parameters

◆ SetGroupFilterStatus() [1/3]

void UE::Net::Private::FReplicationFiltering::SetGroupFilterStatus ( FNetObjectGroupHandle  GroupHandle,
const FNetBitArrayView ConnectionsBitArray,
ENetFilterStatus  ReplicationStatus 
)

◆ SetGroupFilterStatus() [2/3]

void UE::Net::Private::FReplicationFiltering::SetGroupFilterStatus ( FNetObjectGroupHandle  GroupHandle,
ENetFilterStatus  ReplicationStatus 
)

◆ SetGroupFilterStatus() [3/3]

void UE::Net::Private::FReplicationFiltering::SetGroupFilterStatus ( FNetObjectGroupHandle  GroupHandle,
uint32  ConnectionId,
ENetFilterStatus  ReplicationStatus 
)

◆ SetOwningConnection()

void UE::Net::Private::FReplicationFiltering::SetOwningConnection ( FInternalNetRefIndex  ObjectIndex,
uint32  ConnectionId 
)

◆ SetSubObjectFilterStatus()

void UE::Net::Private::FReplicationFiltering::SetSubObjectFilterStatus ( FNetObjectGroupHandle  GroupHandle,
FConnectionHandle  ConnectionHandle,
ENetFilterStatus  ReplicationStatus 
)

The documentation for this class was generated from the following files: