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

#include <ReplicationConditionals.h>

Classes

struct  FConditionalsMask
 

Public Types

using FSubObjectsToReplicateArray = TArray< FInternalNetRefIndex, TInlineAllocator< 32 > >
 

Public Member Functions

 FReplicationConditionals ()
 
void Init (FReplicationConditionalsInitParams &Params)
 
void OnMaxInternalNetRefIndexIncreased (FInternalNetRefIndex NewMaxInternalIndex)
 
void OnInternalNetRefIndicesFreed (const TConstArrayView< FInternalNetRefIndex > &FreedIndices)
 
void AddConnection (uint32 ConnectionId)
 
void RemoveConnection (uint32 ConnectionId)
 
bool SetConditionConnectionFilter (FInternalNetRefIndex ObjectIndex, EReplicationCondition Condition, uint32 ConnectionId, bool bEnable)
 
bool SetCondition (FInternalNetRefIndex ObjectIndex, EReplicationCondition Condition, bool bEnable)
 
void SetOwningConnection (FInternalNetRefIndex ObjectIndex, uint32 ConnectionId)
 
void InitPropertyCustomConditions (FInternalNetRefIndex ObjectIndex)
 
bool SetPropertyCustomCondition (FInternalNetRefIndex ObjectIndex, const void *Owner, uint16 RepIndex, bool bIsActive)
 
bool SetPropertyDynamicCondition (FInternalNetRefIndex ObjectIndex, const void *Owner, uint16 RepIndex, ELifetimeCondition Condition)
 
void MarkLifeTimeConditionalsDirtyForObjectsInGroup (FNetObjectGroupHandle GroupHandle)
 
void MarkPropertyDirty (FInternalNetRefIndex ObjectIndex, uint16 RepIndex)
 
void Update ()
 
bool ApplyConditionalsToChangeMask (uint32 ReplicatingConnectionId, bool bIsInitialState, FInternalNetRefIndex ParentObjectIndex, FInternalNetRefIndex ObjectIndex, uint32 *ChangeMaskData, const uint32 *ConditionalChangeMaskData, const FReplicationProtocol *Protocol)
 
void GetSubObjectsToReplicate (uint32 ReplicationConnectionId, FInternalNetRefIndex ParentObjectIndex, FSubObjectsToReplicateArray &OutSubObjectsToReplicate)
 

Detailed Description

NOTE: Almost everything in this class is for backward compatibility mode only. As such some functions are fairly slow. For declared replication states this overhead will be eliminated because the state itself can do all the relevant tracking locally. The one thing that will possibly remain is the unmasking of changemasks. The unmasking could then either be done on the sending side, CPU vs bandwidth trade-off, or on the receiving side, not so CPU costly as there's typically one connection and maybe tens of objects. The unmasking is then likely to move to protocol operations.

Member Typedef Documentation

◆ FSubObjectsToReplicateArray

Constructor & Destructor Documentation

◆ FReplicationConditionals()

UE::Net::Private::FReplicationConditionals::FReplicationConditionals ( )

Member Function Documentation

◆ AddConnection()

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

◆ ApplyConditionalsToChangeMask()

bool UE::Net::Private::FReplicationConditionals::ApplyConditionalsToChangeMask ( uint32  ReplicatingConnectionId,
bool  bIsInitialState,
FInternalNetRefIndex  ParentObjectIndex,
FInternalNetRefIndex  ObjectIndex,
uint32 ChangeMaskData,
const uint32 ConditionalChangeMaskData,
const FReplicationProtocol Protocol 
)

◆ GetSubObjectsToReplicate()

void UE::Net::Private::FReplicationConditionals::GetSubObjectsToReplicate ( uint32  ReplicationConnectionId,
FInternalNetRefIndex  ParentObjectIndex,
FSubObjectsToReplicateArray OutSubObjectsToReplicate 
)

◆ Init()

void UE::Net::Private::FReplicationConditionals::Init ( FReplicationConditionalsInitParams Params)

◆ InitPropertyCustomConditions()

void UE::Net::Private::FReplicationConditionals::InitPropertyCustomConditions ( FInternalNetRefIndex  ObjectIndex)

◆ MarkLifeTimeConditionalsDirtyForObjectsInGroup()

void UE::Net::Private::FReplicationConditionals::MarkLifeTimeConditionalsDirtyForObjectsInGroup ( FNetObjectGroupHandle  GroupHandle)

◆ MarkPropertyDirty()

void UE::Net::Private::FReplicationConditionals::MarkPropertyDirty ( FInternalNetRefIndex  ObjectIndex,
uint16  RepIndex 
)

Unconditionally marks a property as dirty, causing it to replicate with the object at the earliest convenience.

◆ OnInternalNetRefIndicesFreed()

void UE::Net::Private::FReplicationConditionals::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::FReplicationConditionals::OnMaxInternalNetRefIndexIncreased ( FInternalNetRefIndex  NewMaxInternalIndex)

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

◆ RemoveConnection()

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

◆ SetCondition()

bool UE::Net::Private::FReplicationConditionals::SetCondition ( FInternalNetRefIndex  ObjectIndex,
EReplicationCondition  Condition,
bool  bEnable 
)

◆ SetConditionConnectionFilter()

bool UE::Net::Private::FReplicationConditionals::SetConditionConnectionFilter ( FInternalNetRefIndex  ObjectIndex,
EReplicationCondition  Condition,
uint32  ConnectionId,
bool  bEnable 
)

◆ SetOwningConnection()

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

◆ SetPropertyCustomCondition()

bool UE::Net::Private::FReplicationConditionals::SetPropertyCustomCondition ( FInternalNetRefIndex  ObjectIndex,
const void Owner,
uint16  RepIndex,
bool  bIsActive 
)

◆ SetPropertyDynamicCondition()

bool UE::Net::Private::FReplicationConditionals::SetPropertyDynamicCondition ( FInternalNetRefIndex  ObjectIndex,
const void Owner,
uint16  RepIndex,
ELifetimeCondition  Condition 
)

◆ Update()

void UE::Net::Private::FReplicationConditionals::Update ( )

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