UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ReplicationSystemInternal.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Containers/Array.h"
27#include "Iris/Stats/NetStats.h"
28
30
31namespace UE::Net::Private
32{
33
44
46{
47public:
49 : NetRefHandleManager(ReplicationProtocolManager)
50 , InternalInitParams(Params)
51 , DirtyNetObjectTracker()
52 , ReplicationBridge(nullptr)
53 , IrisObjectReferencePackageMap(nullptr)
54 , Id(Params.ReplicationSystemId)
56 {}
57
58 FReplicationProtocolManager& GetReplicationProtocolManager() { return ReplicationProtocolManager; }
59
60 FNetRefHandleManager& GetNetRefHandleManager() { return NetRefHandleManager; }
61 const FNetRefHandleManager& GetNetRefHandleManager() const { return NetRefHandleManager; }
62
63 void InitDirtyNetObjectTracker(const struct FDirtyNetObjectTrackerInitParams& Params) { DirtyNetObjectTracker.Init(Params); }
64 bool IsDirtyNetObjectTrackerInitialized() const { return DirtyNetObjectTracker.IsInit(); }
65 FDirtyNetObjectTracker& GetDirtyNetObjectTracker() { checkf(DirtyNetObjectTracker.IsInit(), TEXT("Not allowed to access the DirtyNetObjectTracker unless object replication is enabled.")); return DirtyNetObjectTracker; }
66
67 FReplicationStateDescriptorRegistry& GetReplicationStateDescriptorRegistry() { return ReplicationStateDescriptorRegistry; }
68
69 FReplicationStateStorage& GetReplicationStateStorage() { return ReplicationStateStorage; }
70
71 FObjectReferenceCache& GetObjectReferenceCache() { return ObjectReferenceCache; }
72
74 UObjectReplicationBridge* GetReplicationBridge() const { return ReplicationBridge; }
76
78 UIrisObjectReferencePackageMap* GetIrisObjectReferencePackageMap() { return IrisObjectReferencePackageMap; }
79
80 FChangeMaskCache& GetChangeMaskCache() { return ChangeMaskCache; }
81
82 FReplicationConnections& GetConnections() { return Connections; }
83
84 FReplicationFiltering& GetFiltering() { return Filtering; }
85 const FReplicationFiltering& GetFiltering() const { return Filtering; }
86
87 FNetObjectGroups& GetGroups() { return Groups; }
88
89 FReplicationConditionals& GetConditionals() { return Conditionals; }
90
91 FReplicationPrioritization& GetPrioritization() { return Prioritization; }
92
93 FNetBlobManager& GetNetBlobManager() { return NetBlobManager; }
96
97 FWorldLocations& GetWorldLocations() { return WorldLocations; }
98
99 FDeltaCompressionBaselineManager& GetDeltaCompressionBaselineManager() { return DeltaCompressionBaselineManager; }
101
102 FNetTypeStats& GetNetTypeStats() { return TypeStats; }
103
104 FReplicationSystemInternalInitParams& GetInitParams() { return InternalInitParams; }
105
107 {
108 return SendStats;
109 }
110
112 {
113 return TickReplicationStats;
114 }
115
117 {
118 return TickReplicationStats;
119 }
120
122 {
123 return AccumulatedReplicationStats;
124 }
125
127 {
128 return AccumulatedReplicationStats;
129 }
130
132 {
133 return ForwardNetRPCCallMulticastDelegate;
134 }
135
136 void SetBlockFilterChanges(bool bBlock) { bBlockFilterChanges = bBlock; }
137
138 bool AreFilterChangesBlocked() const { return bBlockFilterChanges; }
139
141
145 {
148 bIsInParallelPhase = true;
149 TypeStats.SetIsInParallelPhase(true);
150 }
151
153 {
156 bIsInParallelPhase = false;
157 TypeStats.SetIsInParallelPhase(false);
158 }
159
161 {
162 return bIsInParallelPhase;
163 }
164
169
174
175private:
176 FReplicationProtocolManager ReplicationProtocolManager;
177 FNetRefHandleManager NetRefHandleManager;
178 FReplicationSystemInternalInitParams InternalInitParams;
179 FDirtyNetObjectTracker DirtyNetObjectTracker;
180 FReplicationStateStorage ReplicationStateStorage;
181 FReplicationStateDescriptorRegistry ReplicationStateDescriptorRegistry;
182 UObjectReplicationBridge* ReplicationBridge;
183 UIrisObjectReferencePackageMap* IrisObjectReferencePackageMap;
184 FChangeMaskCache ChangeMaskCache;
185 FReplicationConnections Connections;
186 FReplicationFiltering Filtering;
187 FNetObjectGroups Groups;
188 FReplicationConditionals Conditionals;
189 FReplicationPrioritization Prioritization;
190 FObjectReferenceCache ObjectReferenceCache;
191 FNetBlobManager NetBlobManager;
192 FWorldLocations WorldLocations;
193 FDeltaCompressionBaselineManager DeltaCompressionBaselineManager;
194 FDeltaCompressionBaselineInvalidationTracker DeltaCompressionBaselineInvalidationTracker;
195 FNetSendStats SendStats;
196 FNetTypeStats TypeStats;
197 FReplicationStats TickReplicationStats = {};
198 FReplicationStats AccumulatedReplicationStats = {};
199 FForwardNetRPCCallMulticastDelegate ForwardNetRPCCallMulticastDelegate;
200 uint32 Id;
201
203 bool bBlockFilterChanges = false;
204
205public:
211
213 bool bIsInParallelPhase = false;
214};
215
216}
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NetRefHandle.h:25
Definition ReplicationStateStorage.h:48
Definition WorldLocations.h:57
Definition DeltaCompressionBaselineInvalidationTracker.h:28
Definition DeltaCompressionBaselineManager.h:54
Definition DirtyNetObjectTracker.h:46
bool IsInit() const
Definition DirtyNetObjectTracker.h:55
void Init(const FDirtyNetObjectTrackerInitParams &Params)
Definition DirtyNetObjectTracker.cpp:28
Definition NetBlobHandlerManager.h:11
Definition NetBlobManager.h:38
FNetBlobHandlerManager & GetNetBlobHandlerManager()
Definition NetBlobManager.h:78
Definition NetObjectGroups.h:52
Definition NetRefHandleManager.h:72
Definition NetStats.h:27
Definition NetStats.h:168
void SetIsInParallelPhase(const bool InParallelPhase)
Definition NetStats.h:222
Definition ObjectReferenceCache.h:38
Definition ReplicationConditionals.h:51
Definition ReplicationConnections.h:32
Definition ReplicationFiltering.h:56
Definition ReplicationPrioritization.h:41
Definition ReplicationProtocolManager.h:25
Definition ReplicationStateDescriptorRegistry.h:31
Definition ReplicationSystemInternal.h:46
FNetBlobHandlerManager & GetNetBlobHandlerManager()
Definition ReplicationSystemInternal.h:94
bool bAllowParallelTasks
Definition ReplicationSystemInternal.h:210
FReplicationStateStorage & GetReplicationStateStorage()
Definition ReplicationSystemInternal.h:69
FReplicationStats & GetAccumulatedReplicationStats()
Definition ReplicationSystemInternal.h:121
FDeltaCompressionBaselineInvalidationTracker & GetDeltaCompressionBaselineInvalidationTracker()
Definition ReplicationSystemInternal.h:100
FNetBlobManager & GetNetBlobManager()
Definition ReplicationSystemInternal.h:93
const FNetBlobHandlerManager & GetNetBlobHandlerManager() const
Definition ReplicationSystemInternal.h:95
FReplicationStats & GetTickReplicationStats()
Definition ReplicationSystemInternal.h:111
FReplicationSystemInternal(const FReplicationSystemInternalInitParams &Params)
Definition ReplicationSystemInternal.h:48
FNetSendStats & GetSendStats()
Definition ReplicationSystemInternal.h:106
UObjectReplicationBridge * GetReplicationBridge() const
Definition ReplicationSystemInternal.h:74
FForwardNetRPCCallMulticastDelegate & GetForwardNetRPCCallMulticastDelegate()
Definition ReplicationSystemInternal.h:131
const FReplicationStats & GetTickReplicationStats() const
Definition ReplicationSystemInternal.h:116
void StartParallelPhase()
Definition ReplicationSystemInternal.h:144
void StopParallelPhase()
Definition ReplicationSystemInternal.h:152
const FReplicationFiltering & GetFiltering() const
Definition ReplicationSystemInternal.h:85
void SetBlockFilterChanges(bool bBlock)
Definition ReplicationSystemInternal.h:136
void SetIrisObjectReferencePackageMap(UIrisObjectReferencePackageMap *InIrisObjectReferencePackageMap)
Definition ReplicationSystemInternal.h:77
FDeltaCompressionBaselineManager & GetDeltaCompressionBaselineManager()
Definition ReplicationSystemInternal.h:99
bool AreParallelTasksAllowed() const
Definition ReplicationSystemInternal.h:140
FReplicationProtocolManager & GetReplicationProtocolManager()
Definition ReplicationSystemInternal.h:58
const FNetRefHandleManager & GetNetRefHandleManager() const
Definition ReplicationSystemInternal.h:61
void InitDirtyNetObjectTracker(const struct FDirtyNetObjectTrackerInitParams &Params)
Definition ReplicationSystemInternal.h:63
FReplicationPrioritization & GetPrioritization()
Definition ReplicationSystemInternal.h:91
void SetReplicationBridge(UObjectReplicationBridge *InReplicationBridge)
Definition ReplicationSystemInternal.h:73
FObjectReferenceCache & GetObjectReferenceCache()
Definition ReplicationSystemInternal.h:71
FNetObjectGroups & GetGroups()
Definition ReplicationSystemInternal.h:87
bool GetIsInParallelPhase() const
Definition ReplicationSystemInternal.h:160
FReplicationConditionals & GetConditionals()
Definition ReplicationSystemInternal.h:89
FNetRefHandleManager & GetNetRefHandleManager()
Definition ReplicationSystemInternal.h:60
void PostSeamlessTravelGarbageCollect()
Definition ReplicationSystemInternal.h:170
FNetTypeStats & GetNetTypeStats()
Definition ReplicationSystemInternal.h:102
FReplicationStateDescriptorRegistry & GetReplicationStateDescriptorRegistry()
Definition ReplicationSystemInternal.h:67
bool IsDirtyNetObjectTrackerInitialized() const
Definition ReplicationSystemInternal.h:64
FReplicationSystemInternalInitParams & GetInitParams()
Definition ReplicationSystemInternal.h:104
bool AreFilterChangesBlocked() const
Definition ReplicationSystemInternal.h:138
FWorldLocations & GetWorldLocations()
Definition ReplicationSystemInternal.h:97
FChangeMaskCache & GetChangeMaskCache()
Definition ReplicationSystemInternal.h:80
FReplicationConnections & GetConnections()
Definition ReplicationSystemInternal.h:82
UIrisObjectReferencePackageMap * GetIrisObjectReferencePackageMap()
Definition ReplicationSystemInternal.h:78
UObjectReplicationBridge * GetReplicationBridge(FNetRefHandle Handle) const
Definition ReplicationSystemInternal.h:75
void PreSeamlessTravelGarbageCollect()
Definition ReplicationSystemInternal.h:165
FDirtyNetObjectTracker & GetDirtyNetObjectTracker()
Definition ReplicationSystemInternal.h:65
FReplicationFiltering & GetFiltering()
Definition ReplicationSystemInternal.h:84
const FReplicationStats & GetAccumulatedReplicationStats() const
Definition ReplicationSystemInternal.h:126
bool bIsInParallelPhase
Definition ReplicationSystemInternal.h:213
Definition IrisObjectReferencePackageMap.h:72
Definition ObjectReplicationBridge.h:83
void PreSeamlessTravelGarbageCollect()
Definition ReplicationBridge.cpp:874
void PostSeamlessTravelGarbageCollect()
Definition ReplicationBridge.cpp:891
Definition NetworkVersion.cpp:28
TMulticastDelegate< typename FForwardNetRPCCallDelegate::TFuncType > FForwardNetRPCCallMulticastDelegate
Definition ReplicationSystemTypes.h:49
Definition ChangeMaskCache.h:17
Definition DirtyNetObjectTracker.h:39
Definition NetStats.h:247
Definition ReplicationSystemInternal.h:35
uint32 MaxReplicationWriterObjectCount
Definition ReplicationSystemInternal.h:39
bool bAllowMinimalUpdateIfNoConnections
Definition ReplicationSystemInternal.h:42
bool bAllowParallelTasks
Definition ReplicationSystemInternal.h:41
uint32 ReplicationSystemId
Definition ReplicationSystemInternal.h:36
uint32 MaxReplicatedObjectCount
Definition ReplicationSystemInternal.h:37
uint32 NetChunkedArrayCount
Definition ReplicationSystemInternal.h:38
bool bUseRemoteObjectReferences
Definition ReplicationSystemInternal.h:40