UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ReplicationStateDescriptorRegistry.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"
7#include "Containers/Map.h"
9#include "UObject/Field.h"
11#include "UObject/ObjectKey.h"
12
13namespace UE::Net
14{
15 struct FReplicationStateDescriptor;
16 namespace Private
17 {
18 class FReplicationProtocolManager;
19 }
20}
21
22namespace UE::Net::Private
23{
24
29
31{
32public:
34
36
39
41 const FDescriptors* Find(const FFieldVariant& Object, const UObject* ObjectForPruning) const;
42
44 const FDescriptors* Find(const FFieldVariant& Object) const { return Find(Object, GetObjectForPruning(Object)); }
45
47 void Register(const FFieldVariant& DescriptorKey, const UObject* ObjectForPruning, const FDescriptors& Descriptors);
48
50 void Register(const FFieldVariant& DescriptorKey, const FDescriptors& Descriptors) { Register(DescriptorKey, GetObjectForPruning(DescriptorKey), Descriptors); }
51
54
56 void Register(const FFieldVariant& DescriptorKey, const TRefCountPtr<const FReplicationStateDescriptor>& Descriptor) { Register(DescriptorKey, GetObjectForPruning(DescriptorKey), Descriptor); }
57
60
61private:
62 static const UObject* GetObjectForPruning(const FFieldVariant& Object);
63
64 void InvalidateDescriptors(const FDescriptors& Descriptors) const;
65
66 struct FRegisteredDescriptors
67 {
68 TWeakObjectPtr<const UObject> WeakPtrForPruning;
69 FDescriptors Descriptors;
70 FObjectKey OwnerKey;
71 };
72
73 typedef TMap<FFieldVariant, FRegisteredDescriptors> FClassToDescriptorMap;
74 FClassToDescriptorMap RegisteredDescriptorsMap;
75 FReplicationProtocolManager* ProtocolManager;
76};
77
78}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
Definition Field.h:353
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition RefCounting.h:454
Definition ReplicationProtocolManager.h:25
Definition ReplicationStateDescriptorRegistry.h:31
TArray< TRefCountPtr< const FReplicationStateDescriptor > > FDescriptors
Definition ReplicationStateDescriptorRegistry.h:38
FReplicationStateDescriptorRegistry()
Definition ReplicationStateDescriptorRegistry.cpp:17
void PruneStaleDescriptors()
Definition ReplicationStateDescriptorRegistry.cpp:112
void Register(const FFieldVariant &DescriptorKey, const TRefCountPtr< const FReplicationStateDescriptor > &Descriptor)
Definition ReplicationStateDescriptorRegistry.h:56
const FDescriptors * Find(const FFieldVariant &Object) const
Definition ReplicationStateDescriptorRegistry.h:44
void Register(const FFieldVariant &DescriptorKey, const FDescriptors &Descriptors)
Definition ReplicationStateDescriptorRegistry.h:50
Definition Object.h:95
Definition OverriddenPropertySet.cpp:45
Definition NetworkVersion.cpp:28
Definition NetworkVersion.cpp:28
Definition ObjectKey.h:19
Definition WeakObjectPtrTemplates.h:25
Definition ReplicationStateDescriptorRegistry.h:26
FReplicationProtocolManager * ProtocolManager
Definition ReplicationStateDescriptorRegistry.h:27