UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ObjectReplicationBridge.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "HAL/Platform.h"
6
11
13#include "Containers/Set.h"
14
16
17#include "Misc/EnumClassFlags.h"
18
21
22#include "ObjectReplicationBridge.generated.h"
23
25
26namespace UE::Net
27{
28 enum class ENetRefHandleError : uint32;
30
31 struct FNetObjectResolveContext;
32
36
38 class FWorldLocations;
39
40 namespace Private
41 {
44 class FObjectPoller;
47 }
48}
49
50namespace UE::Net::Private
51{
52
68
69} // end namespace UE::Net::Private
70
76
77/*
78* Partial implementation of ReplicationBridge that can be used as a foundation for
79* implementing support for replicating objects derived from UObject
80*/
83{
85
86public:
87
89
92
94
96 IRISCORE_API UObject* GetReplicatedObject(FNetRefHandle Handle) const;
97
99 IRISCORE_API FNetRefHandle GetReplicatedRefHandle(const UObject* Object, EGetRefHandleFlags GetRefHandleFlags = EGetRefHandleFlags::None) const;
100
102 IRISCORE_API FNetRefHandle GetReplicatedRefHandle(FNetHandle Handle) const;
103
105 IRISCORE_API UObject* ResolveObjectReference(const UE::Net::FNetObjectReference& ObjectRef, const UE::Net::FNetObjectResolveContext& ResolveContext);
106
108 IRISCORE_API FString DescribeObjectReference(const UE::Net::FNetObjectReference& ObjectRef, const UE::Net::FNetObjectResolveContext& ResolveContext);
109
111 IRISCORE_API UE::Net::FNetObjectReference GetOrCreateObjectReference(const UObject* Instance) const;
112
114 IRISCORE_API UE::Net::FNetObjectReference GetOrCreateObjectReference(const FString& Path, const UObject* Outer) const;
115
123 IRISCORE_API FNetRefHandle StartReplicatingRootObject(UObject* Instance, const FRootObjectReplicationParams& Params, UE::Net::FNetObjectFactoryId NetFactoryId);
124
134 IRISCORE_API FNetRefHandle StartReplicatingSubObject(UObject* Instance, const FSubObjectReplicationParams& Params, UE::Net::FNetObjectFactoryId NetFactoryId);
135
143
149 IRISCORE_API void SetSubObjectNetCondition(FNetRefHandle SubObjectHandle, ELifetimeCondition Condition);
150
155 IRISCORE_API FNetRefHandle GetRootObjectOfAnyObject(FNetRefHandle NetRefHandle) const;
156
158 IRISCORE_API FNetRefHandle GetRootObjectOfSubObject(FNetRefHandle SubObjectHandle) const;
159
161 IRISCORE_API UNetObjectFactory* GetNetFactory(UE::Net::FNetObjectFactoryId FactoryId) const;
162
164 IRISCORE_API void AddStaticDestructionInfo(const FString& ObjectPath, const UObject* Outer, const UE::Net::FDestructionParameters& Parameters);
165
167 IRISCORE_API FNetRefHandle StoreDestructionInfo(FNetRefHandle Handle, const UE::Net::FDestructionParameters& Parameters);
168
170 virtual bool RemapPathForPIE(uint32 ConnectionId, FString& Path, bool bReading) const { return false; }
171
173 virtual bool ObjectLevelHasFinishedLoading(UObject* Object) const { return true; }
174
180 IRISCORE_API void AddDependentObject(FNetRefHandle Parent, FNetRefHandle DependentObject, UE::Net::EDependentObjectSchedulingHint SchedulingHint = UE::Net::EDependentObjectSchedulingHint::Default);
181
183 IRISCORE_API void RemoveDependentObject(FNetRefHandle Parent, FNetRefHandle DependentObject);
184
186 IRISCORE_API void AddCreationDependencyLink(FNetRefHandle Parent, FNetRefHandle Child);
187
189 IRISCORE_API void RemoveCreationDependencyLink(FNetRefHandle Parent, FNetRefHandle Child);
190
191 // Dormancy support
192
194 IRISCORE_API void SetObjectWantsToBeDormant(FNetRefHandle Handle, bool bWantsToBeDormant);
195
197 IRISCORE_API bool GetObjectWantsToBeDormant(FNetRefHandle Handle) const;
198
200 IRISCORE_API void NetFlushDormantObject(FNetRefHandle Handle);
201
203 IRISCORE_API void SetPollFrequency(FNetRefHandle RootHandle, float PollFrequency);
204
206 IRISCORE_API void SetClassDynamicFilterConfig(FName ClassPathName, const UE::Net::FNetObjectFilterHandle FilterHandle, FName FilterProfile=NAME_None);
207 IRISCORE_API void SetClassDynamicFilterConfig(FName ClassPathName, FName FilterName, FName FilterProfile=NAME_None);
208
210 IRISCORE_API void SetClassTypeStatsConfig(FName ClassPathName, FName TypeStatsName);
211 IRISCORE_API void SetClassTypeStatsConfig(const FString& ClassPathName, const FString& TypeStatsName);
212
214 IRISCORE_API bool ShouldUseVerboseCsvStats() const;
215
217 FName GetDefaultSpatialFilterName() const { return DefaultSpatialFilterName; }
218
220 IRISCORE_API bool IsNetRefHandlePreRegistered(FNetRefHandle Handle);
221
223 IRISCORE_API UObject* GetPreRegisteredObject(FNetRefHandle Handle) const;
224
227
236 IRISCORE_API UE::Net::FNetRefHandle PreRegisterNewObjectReferenceHandle(UObject* Instance);
237
246 IRISCORE_API void PreRegisterObjectWithReferenceHandle(const UObject* Instance, FNetRefHandle Handle);
247
248public:
249
251 {
253 bool bNeedsPreUpdate = false;
254
256 bool bNeedsWorldLocationUpdate = false;
257
259 bool bIsDormant = false;
260
262 bool bUseClassConfigDynamicFilter = true;
263
265 bool bUseExplicitDynamicFilter = false;
266
273
278 float StaticPriority = 0.0f;
279
284 float PollFrequency = 0.0f;
285 };
286
298
299public:
300
303 {
304 Default = 0x0000,
305 // Do not print the entire protocol state when this is set
306 NoProtocolState = 0x0001,
307 // Also print the debug information of child dependents
308 WithDependents = 0x0002,
309 };
310
311 // Debug functions that are triggered via console commands declared in ObjectReplicationBridgeDebugging.cpp
312 void PrintDynamicFilterClassConfig(uint32 ArgTraits);
313 void PrintReplicatedObjects(uint32 ArgTraits) const;
314 void PrintAlwaysRelevantObjects(uint32 ArgTraits) const;
315 void PrintRelevantObjects(uint32 ArgTraits) const;
316 void PrintRelevantObjectsForConnections(const TArray<FString>& Args) const;
317 void PrintNetCullDistances(const TArray<FString>& Args) const;
318 void PrintPushBasedStatuses() const;
319
320 void PrintDebugInfoForNetRefHandlesAndConnections(const TArray<FNetRefHandle>& NetHandles, const TArray<FString>& Args, EPrintDebugInfoTraits PrintTraits);
321 IRISCORE_API void PrintDebugInfoForNetRefHandle(const FNetRefHandle NetHandle, uint32 ConnectionId, EPrintDebugInfoTraits PrintTraits=EPrintDebugInfoTraits::Default) const;
322
323protected:
325
326 // UReplicationBridge
327
329 IRISCORE_API virtual void Deinitialize() override;
330 IRISCORE_API virtual void PreSendUpdateSingleHandle(FNetRefHandle RefHandle) override;
331 IRISCORE_API virtual void PreSendUpdate() override;
332 IRISCORE_API virtual void OnStartPreSendUpdate() override;
333 IRISCORE_API virtual void OnPostSendUpdate() override;
334 IRISCORE_API virtual void OnPostReceiveUpdate() override;
335 IRISCORE_API virtual void UpdateInstancesWorldLocation() override;
336 IRISCORE_API virtual void PruneStaleObjects() override;
337 IRISCORE_API virtual bool CacheNetRefHandleCreationInfo(FNetRefHandle Handle) override;
338 IRISCORE_API virtual void DetachInstance(FNetRefHandle Handle) override;
339 IRISCORE_API virtual void OnProtocolMismatchReported(FNetRefHandle RefHandle, uint32 ConnectionId) override;
340 IRISCORE_API virtual void OnErrorWithNetRefHandleReported(UE::Net::ENetRefHandleError ErrorType, FNetRefHandle RefHandle, uint32 ConnectionId, const TArray<FNetRefHandle>& ExtraHandles) override;
341
346 IRISCORE_API virtual void RemoveDestructionInfosForGroup(UE::Net::FNetObjectGroupHandle GroupHandle) override;
347
348private:
349
350 void OnErrorBitstreamCorrupted(FNetRefHandle RefHandle, uint32 ConnectionId);
351 void OnErrorCannotReplicateObject(FNetRefHandle RefHandle, uint32 ConnectionId);
352 void OnErrorBlockedByAsyncLoading(FNetRefHandle RefHandle, uint32 ConnectionId, const TArray<FNetRefHandle>& MustBeMappedRefs);
353 void OnErrorBlockedByParents(FNetRefHandle RefHandle, uint32 ConnectionId, const TArray<FNetRefHandle>& BlockedParents);
354
355protected:
356
358 virtual void OnProtocolMismatchDetected(FNetRefHandle ObjectHandle) {}
359
361 IRISCORE_API UObject* GetObjectFromReferenceHandle(FNetRefHandle RefHandle) const;
362
365
367 IRISCORE_API void SetInstancePreUpdateFunction(FInstancePreUpdateFunction InPreUpdateFunction);
368
370 IRISCORE_API FInstancePreUpdateFunction GetInstancePreUpdateFunction() const;
371
372 // Poll frequency support
373
376
378 IRISCORE_API uint8 ConvertPollFrequencyIntoFrames(float PollFrequency) const;
379
381 IRISCORE_API void ReinitPollFrequency();
382
384 IRISCORE_API void LoadConfig();
385
388
393 IRISCORE_API void SetShouldUseDefaultSpatialFilterFunction(TFunction<bool(const UClass*)>);
394
396 IRISCORE_API void SetShouldSubclassUseSameFilterFunction(TFunction<bool(const UClass* Class, const UClass* Subclass)>);
397
399 IRISCORE_API bool FindOrCachePollFrequency(const UClass* Class, float& OutPollPeriod);
400
406 IRISCORE_API bool GetClassPollFrequency(const UClass* Class, float& OutPollPeriod) const;
407
409 IRISCORE_API EIrisAsyncLoadingPriority GetClassIrisAsyncLoadingPriority(const UClass* Class);
410
412 IRISCORE_API bool IsClassCritical(const UClass* Class);
413
415 IRISCORE_API virtual bool IsClassReplicatedByDefault(const UClass* Class) const;
416
418 [[nodiscard]] IRISCORE_API virtual FString PrintConnectionInfo(uint32 ConnectionId) const;
419
421 float GetMaxTickRate() const { return MaxTickRate; }
422
424 void SetMaxTickRate(float InMaxTickRate) { MaxTickRate = InMaxTickRate; }
425
430 IRISCORE_API virtual TArray<uint32> FindConnectionsFromArgs(const TArray<FString>& Args) const;
431
434
435private:
436
438 void ForcePollObject(FNetRefHandle RefHandle);
439
441 void BuildPollList(UE::Net::FNetBitArrayView ObjectsConsideredForPolling);
442
444 void PreUpdate(const UE::Net::FNetBitArrayView ObjectsConsideredForPolling);
445
447 void FinalizeDirtyObjects();
448
450 void ReconcileNewSubObjects(UE::Net::FNetBitArrayView ObjectsConsideredForPolling);
451
453 void PollAndCopy(const UE::Net::FNetBitArrayView ObjectsConsideredForPolling);
454
456 void UnregisterInstance(FNetRefHandle RefHandle);
457
458 void RegisterRemoteInstance(FNetRefHandle RefHandle, UObject* InstancePtr, const UE::Net::FReplicationProtocol* Protocol, UE::Net::FReplicationInstanceProtocol* InstanceProtocol, uint32 ConnectionId);
459
466 void DetachInstanceFromRemote(FNetRefHandle Handle, EReplicationBridgeDestroyInstanceReason DestroyReason, EReplicationBridgeDestroyInstanceFlags DestroyFlags, UE::Net::FNetObjectFactoryId NetFactoryId);
467
470
471 void SetNetPushIdOnInstance(UE::Net::FReplicationInstanceProtocol* InstanceProtocol, FNetHandle NetHandle);
472
474 void FindClassesInPollPeriodOverrides();
475
477 float GetPollFrequencyOfRootObject(UE::Net::Private::FInternalNetRefIndex RootObjectIndex) const;
478
481
484
486 void AssignDynamicFilter(UObject* Instance, const FRootObjectReplicationParams& Params, FNetRefHandle RefHandle);
487
489 bool ShouldClassBeDeltaCompressed(const UClass* Class);
490
492 void SetSubObjectDormancyStatus(FNetRefHandle SubObjectRefHandle, FNetRefHandle OwnerRefHandle);
493
495 void OptionallySetObjectRequiresFrequentWorldLocationUpdate(FNetRefHandle RefHandle, bool bDesiresFrequentWorldLocationUpdate);
496
497 struct FUpdateWorldInfoContext
498 {
499 UE::Net::FWorldLocations& WorldLocations;
501 FNetRefHandle NetRefHandle;
502 };
504 void UpdateRootObjectWorldInfo(const FUpdateWorldInfoContext& Context);
505
507 int32 GetTypeStatsIndex(const UClass* Class);
508
509 FInstancePreUpdateFunction PreUpdateInstanceFunction;
510
511 FName GetConfigClassPathName(const UClass* Class);
512
513 void CreateDestructionProtocol();
514 void InitConditionalPropertyDelegates();
515 void InitNetObjectFactories();
516 void DeinitNetObjectFactories();
517
518 void OnMaxInternalNetRefIndexIncreased(UE::Net::Private::FInternalNetRefIndex NewMaxInternalIndex);
519
520private:
521
522 //------------------------------------------------------------------------
523 // These private methods are available through the FBridgeSerialization interface
524 //------------------------------------------------------------------------
525
527
529 const UE::Net::Private::FStaticDestructionInfo* GetStaticDestructionInfo(UE::Net::FNetRefHandle Handle) const
530 {
531 return StaticObjectsPendingDestroy.Find(Handle);
532 }
533
539 bool WriteNetRefHandleCreationInfo(FReplicationBridgeSerializationContext& Context, FNetRefHandle Handle);
540
547
548 void ReadAndExecuteDestructionInfoFromRemote(FReplicationBridgeSerializationContext& Context);
549
552
555
557 void SubObjectCreatedFromReplication(UE::Net::Private::FInternalNetRefIndex RootObjectIndex, FNetRefHandle SubObjectCreated);
558
559private:
560
563
564 friend UReplicationSystem;
565
566 TMap<const UClass*, FName> ConfigClassPathNameCache;
567
568 // Prioritization
569 struct FClassPrioritizerInfo
570 {
571 UE::Net::FNetObjectPrioritizerHandle PrioritizerHandle;
572 bool bForceEnable = false;
573 };
574
575 // Filtering
576 struct FClassFilterInfo
577 {
579 FName FilterProfile;
580 bool bForceEnable = false;
581 };
582
583 // Polling
584
586 float MaxTickRate = 30.0f;
587
588 struct FPollInfo
589 {
590 float PollFrequency = 0.0f;
592 };
594
595 //$IRIS TODO: The poll class config management code should be moved into it's own class. Maybe in a class that handles any type of per-class settings.
596 // Class hierarchies with poll period overrides
597 TMap<FName, FPollInfo> ClassHierarchyPollPeriodOverrides;
598 // Exact classes with poll period overrides
599 TMap<FName, FPollInfo> ClassesWithPollPeriodOverride;
600 // Exact classes without poll period override
601 TSet<FName> ClassesWithoutPollPeriodOverride;
602
603 // Filter mapping
604 //$IRIS TODO: Look into improving this class map by balancing runtime speed (implicit addition of new classes) with runtime modifications of base classes.
605 // Right-now any changes to say APawn's filter will not be read if a APlayerPawn entry was created based on the APawn entry.
606 TMap<FName, FClassFilterInfo> ClassesWithDynamicFilter;
607 TFunction<bool(const UClass*)> ShouldUseDefaultSpatialFilterFunction;
608 TFunction<bool(const UClass*,const UClass*)> ShouldSubclassUseSameFilterFunction;
609
610 // Prioritizer mapping
611 TMap<FName, FClassPrioritizerInfo> ClassesWithPrioritizer;
612
613 // Delta compression
614 TMap<FName, bool> ClassesWithDeltaCompression;
615
616 // Classes that may force a disconnection when a protocol mismatch is detected.
617 TMap<FName, bool> ClassesFlaggedCritical;
618
619 // Classes that have an async loading priority
620 TMap<FName, EIrisAsyncLoadingPriority> ClassesIrisAsyncLoadingPriority;
621
622 // Type stats
623 TMap<FName, FName> ClassesWithTypeStats;
624
625 // When we flush objects, we might need to defer sending creation info.
627
628 // Track the static objects that are destroyed so clients can be told to delete them after loading the level
630
631 // Objects which has object references and could be affected by garbage collection.
632 UE::Net::FNetBitArray ObjectsWithObjectReferences;
633 // Objects that needs to update their object references due to garbage collection.
634 UE::Net::FNetBitArray GarbageCollectionAffectedObjects;
635
636 FName DefaultSpatialFilterName;
637 UE::Net::FNetObjectFilterHandle DefaultSpatialFilterHandle;
638
639 FDelegateHandle OnCustomConditionChangedHandle;
640 FDelegateHandle OnDynamicConditionChangedHandle;
641
642 // Pre-built protocol used to send destruction requests for static objects
643 const UE::Net::FReplicationProtocol* DestructionInfoProtocol = nullptr;
644
645 UPROPERTY()
646 TArray<TObjectPtr<UNetObjectFactory>> NetObjectFactories;
647
648 bool bHasPollOverrides = false;
649 bool bHasDirtyClassesInPollPeriodOverrides = false;
650
652 bool bBlockStartRootObjectReplication = false;
653
655 bool bSuppressCreateInstanceFailedEnsure = false;
656
657private:
658
659#if UE_NET_ASYNCLOADING_DEBUG
660 friend UE::Net::Private::FAsyncLoadingSimulator;
666#endif
667
668 TMap<FObjectKey, bool> ArchetypesAlreadyPrinted;
669
671 TSet<FObjectKey> WorldLocationOOBWarnings;
672
674 TArray<FString> ClassNamesToIgnoreProtocolMismatch;
675};
676
677//------------------------------------------------------------------------
678
680
681//------------------------------------------------------------------------
682
683namespace UE::Net::Private
684{
685
686#if UE_NET_ASYNCLOADING_DEBUG
688{
689 static void AddStalledObject(UObjectReplicationBridge* Bridge, FNetRefHandle ReplicatedObject)
690 {
691 check(Bridge);
692 if (ReplicatedObject.IsValid())
693 {
694 Bridge->DebugObjectsForcedToStall.AddUnique(ReplicatedObject);
695 }
696 }
697
698 static void RemoveStalledObject(UObjectReplicationBridge* Bridge, FNetRefHandle ReplicatedObject)
699 {
700 check(Bridge);
701 Bridge->DebugObjectsForcedToStall.Remove(ReplicatedObject);
702 }
703
705 {
706 check(Bridge);
707 Bridge->DebugObjectsForcedToStall.Empty();
708 }
709
711 {
712 check(Bridge);
713 return !Bridge->DebugObjectsForcedToStall.IsEmpty();
714 }
715
716 static bool IsObjectStalled(UObjectReplicationBridge* Bridge, FNetRefHandle Handle)
717 {
718 check(Bridge);
719 return Bridge->DebugObjectsForcedToStall.Contains(Handle);
720 }
721
723 {
724 check(Bridge);
725 return Bridge->CreateNetRefHandleFromRemote(RootObjectNetHandle, WantedNetHandle, Context);
726 }
727};
728#endif // UE_NET_ASYNCLOADING_DEBUG
729
732{
733public:
734
736 {
737 return Bridge->WriteNetRefHandleCreationInfo(Context, Handle);
738 }
739
741 {
742 return Bridge->GetStaticDestructionInfo(Handle);
743 }
744
746 {
747 Bridge->DestroyNetObjectFromRemote(InternalObjectIndex, DestroyReason);
748 }
749
751 {
752 Bridge->ReadAndExecuteDestructionInfoFromRemote(Context);
753 }
754
759
761 {
762 return Bridge->PostApplyInitialState(InternalObjectIndex);
763 }
764
766 {
767 return Bridge->SubObjectCreatedFromReplication(RootObjectIndex, SubObjectCreated);
768 }
769};
770
771} // end namespace UE::Net::Private
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
ELifetimeCondition
Definition CoreNetTypes.h:20
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
EIrisAsyncLoadingPriority
Definition ObjectReferenceTypes.h:14
EEndReplicationFlags
Definition ReplicationBridgeTypes.h:12
EReplicationBridgeDestroyInstanceReason
Definition ReplicationBridgeTypes.h:56
EReplicationBridgeDestroyInstanceFlags
Definition ReplicationBridgeTypes.h:66
EReplicationBridgeCreateNetRefHandleResultFlags
Definition ReplicationBridgeTypes.h:34
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition IDelegateInstance.h:14
Definition NameTypes.h:617
Definition ArrayView.h:139
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition Class.h:3793
Definition NetBitArray.h:337
Definition NetBitArray.h:74
Definition NetHandle.h:32
Definition NetObjectGroupHandle.h:22
Definition NetObjectReference.h:38
Definition NetRefHandle.h:25
Definition WorldLocations.h:57
Definition ObjectReplicationBridge.h:732
static void PostApplyInitialState(UObjectReplicationBridge *Bridge, FInternalNetRefIndex InternalObjectIndex)
Definition ObjectReplicationBridge.h:760
static void ReadAndExecuteDestructionInfoFromRemote(UObjectReplicationBridge *Bridge, FReplicationBridgeSerializationContext &Context)
Definition ObjectReplicationBridge.h:750
static FReplicationBridgeCreateNetRefHandleResult CreateNetRefHandleFromRemote(UObjectReplicationBridge *Bridge, FNetRefHandle RootObjectNetHandle, FNetRefHandle WantedNetHandle, FReplicationBridgeSerializationContext &Context)
Definition ObjectReplicationBridge.h:755
static void SubObjectCreatedFromReplication(UObjectReplicationBridge *Bridge, UE::Net::Private::FInternalNetRefIndex RootObjectIndex, FNetRefHandle SubObjectCreated)
Definition ObjectReplicationBridge.h:765
static bool WriteNetRefHandleCreationInfo(UObjectReplicationBridge *Bridge, FReplicationBridgeSerializationContext &Context, FNetRefHandle Handle)
Definition ObjectReplicationBridge.h:735
static void DestroyNetObjectFromRemote(UObjectReplicationBridge *Bridge, FInternalNetRefIndex InternalObjectIndex, EReplicationBridgeDestroyInstanceReason DestroyReason)
Definition ObjectReplicationBridge.h:745
static const UE::Net::Private::FStaticDestructionInfo * GetStaticDestructionInfo(UObjectReplicationBridge *Bridge, UE::Net::FNetRefHandle Handle)
Definition ObjectReplicationBridge.h:740
Definition ObjectPollFrequencyLimiter.h:18
Definition ObjectPoller.h:30
Definition ReplicationSystem.cpp:70
Definition NetObjectFactory.h:79
Definition ObjectReplicationBridge.h:83
FName GetDefaultSpatialFilterName() const
Definition ObjectReplicationBridge.h:217
virtual bool ObjectLevelHasFinishedLoading(UObject *Object) const
Definition ObjectReplicationBridge.h:173
float GetMaxTickRate() const
Definition ObjectReplicationBridge.h:421
EPrintDebugInfoTraits
Definition ObjectReplicationBridge.h:303
virtual bool RemapPathForPIE(uint32 ConnectionId, FString &Path, bool bReading) const
Definition ObjectReplicationBridge.h:170
virtual void OnProtocolMismatchDetected(FNetRefHandle ObjectHandle)
Definition ObjectReplicationBridge.h:358
void SetMaxTickRate(float InMaxTickRate)
Definition ObjectReplicationBridge.h:424
virtual void SendErrorWithNetRefHandle(UE::Net::ENetRefHandleError ErrorType, FNetRefHandle RefHandle, uint32 ConnectionId, TConstArrayView< const FNetRefHandle > ExtraNetRefHandle={})
Definition ObjectReplicationBridge.h:226
Definition Object.h:95
Definition ReplicationBridge.h:116
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
uint32 FReplicationProtocolIdentifier
Definition ReplicationProtocol.h:13
EDependentObjectSchedulingHint
Definition ReplicationSystemTypes.h:37
EReplicationFragmentTraits
Definition ReplicationFragment.h:102
uint8 FNetObjectFactoryId
Definition NetObjectFactoryRegistry.h:18
ENetRefHandleError
Definition NetEnums.h:130
@ InvalidNetObjectFactoryId
Definition NetObjectFactoryRegistry.h:19
uint32 FNetObjectFilterHandle
Definition ReplicationFiltering.h:20
EGetRefHandleFlags
Definition ReplicationSystemTypes.h:19
ESubObjectInsertionOrder
Definition ReplicationBridge.h:99
@ false
Definition radaudio_common.h:23
Definition ObjectReplicationBridge.h:72
UObject * Object
Definition ObjectReplicationBridge.h:73
EReplicationBridgeCreateNetRefHandleResultFlags Flags
Definition ObjectReplicationBridge.h:74
Definition ReplicationBridgeTypes.h:48
Definition ReplicationBridge.h:73
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25
Definition ReplicationBridge.h:87
Definition ObjectReferenceCacheFwd.h:30
Definition ReplicationProtocol.h:42
Definition ReplicationProtocol.h:83
Definition ObjectReplicationBridge.h:55
UE::Net::FNetObjectReference StaticRef
Definition ObjectReplicationBridge.h:57
UE::Net::FNetObjectGroupHandle LevelGroupHandle
Definition ObjectReplicationBridge.h:60
UE::Net::FNetObjectFactoryId NetFactoryId
Definition ObjectReplicationBridge.h:63
UE::Net::Private::FInternalNetRefIndex InternalReplicationIndex
Definition ObjectReplicationBridge.h:66
Definition ObjectReplicationBridge.h:251
FName ExplicitDynamicFilterName
Definition ObjectReplicationBridge.h:272
Definition ObjectReplicationBridge.h:288
FNetRefHandle InsertRelativeToSubObjectHandle
Definition ObjectReplicationBridge.h:293
FNetRefHandle RootObjectHandle
Definition ObjectReplicationBridge.h:290