UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NetSubObjectRegistry.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6#include "HAL/Platform.h"
8#include "UObject/ObjectKey.h"
9
10class UActorComponent;
11class UObject;
12
13#ifndef UE_NET_SUBOBJECTLIST_WEAKPTR
14 #define UE_NET_SUBOBJECTLIST_WEAKPTR 1
15#endif
16
17namespace UE::Net
18{
19 class FSubObjectRegistryGetter;
20}
21
22namespace UE::Net
23{
24
29{
30public:
31
32 enum class EResult : uint8
33 {
40 };
41
44
47
48 bool IsEmpty() const { return Registry.Num() == 0; }
49 int32 Num() const { return Registry.Num(); }
50
56
59
60 struct FEntry
61 {
62 private:
68#if UE_NET_SUBOBJECTLIST_WEAKPTR
69 FWeakObjectPtr SubObject;
70#else
71 UObject* SubObject = nullptr;
72#endif
73
74 public:
75
78
81
82#if UE_NET_REPACTOR_NAME_DEBUG
85
88#endif
89
100
101 inline bool operator==(const FEntry& rhs) const { return Key == rhs.Key; }
102 inline bool operator==(const UObject* rhs) const { return SubObject == rhs; }
103
104 inline UObject* GetSubObject() const
105 {
106#if UE_NET_SUBOBJECTLIST_WEAKPTR
107 return SubObject.Get();
108#else
109 return SubObject;
110#endif
111 }
112 };
113
115 const TArray<FSubObjectRegistry::FEntry>& GetRegistryList() const { return Registry; }
116
118 NETCORE_API bool IsSubObjectInRegistry(const UObject* SubObject) const;
119
120private:
121
122 TArray<FEntry> Registry;
123};
124
127{
130
133
136
139
140#if UE_NET_REPACTOR_NAME_DEBUG
143
145 FName ComponentName;
146#endif
147
158
159 bool operator==(const FReplicatedComponentInfo& rhs) const { return Key == rhs.Key; }
160 bool operator==(const UActorComponent* rhs) const { return Component == rhs; }
161};
162
163
164} // namespace UE::Net
165
166
ELifetimeCondition
Definition CoreNetTypes.h:20
@ COND_None
Definition CoreNetTypes.h:21
#define UE_NET_REPACTOR_NAME_DEBUG
Definition CoreNetTypes.h:13
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
if(Failed) console_printf("Failed.\n")
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition NameTypes.h:617
Definition ArrayView.h:139
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition ActorComponent.h:152
Definition UObjectBase.h:59
Definition Object.h:95
Definition NetworkVersion.cpp:28
Definition ObjectKey.h:19
Definition WeakObjectPtr.h:49
COREUOBJECT_API class UObject * Get(bool bEvenIfGarbage) const
Definition WeakObjectPtr.cpp:122
Definition NetSubObjectRegistry.h:127
ELifetimeCondition NetCondition
Definition NetSubObjectRegistry.h:135
bool operator==(const UActorComponent *rhs) const
Definition NetSubObjectRegistry.h:160
FReplicatedComponentInfo(UActorComponent *InComponent, ELifetimeCondition InNetCondition=COND_None)
Definition NetSubObjectRegistry.h:148
UActorComponent * Component
Definition NetSubObjectRegistry.h:129
FObjectKey Key
Definition NetSubObjectRegistry.h:132
FSubObjectRegistry SubObjects
Definition NetSubObjectRegistry.h:138
bool operator==(const FReplicatedComponentInfo &rhs) const
Definition NetSubObjectRegistry.h:159
Definition NetSubObjectRegistry.h:61
bool operator==(const FEntry &rhs) const
Definition NetSubObjectRegistry.h:101
bool operator==(const UObject *rhs) const
Definition NetSubObjectRegistry.h:102
UObject * GetSubObject() const
Definition NetSubObjectRegistry.h:104
ELifetimeCondition NetCondition
Definition NetSubObjectRegistry.h:80
FEntry(UObject *InSubObject, ELifetimeCondition InNetCondition=COND_None)
Definition NetSubObjectRegistry.h:90
FObjectKey Key
Definition NetSubObjectRegistry.h:77
Definition NetSubObjectRegistry.h:29
int32 Num() const
Definition NetSubObjectRegistry.h:49
NETCORE_API bool RemoveSubObject(UObject *InSubObject)
Definition NetSubObjectRegistry.cpp:37
NETCORE_API ELifetimeCondition GetNetCondition(UObject *SubObject) const
Definition NetSubObjectRegistry.cpp:31
const TArray< FSubObjectRegistry::FEntry > & GetRegistryList() const
Definition NetSubObjectRegistry.h:115
NETCORE_API FSubObjectRegistry::EResult AddSubObjectUnique(UObject *InSubObject, ELifetimeCondition InNetCondition)
Definition NetSubObjectRegistry.cpp:11
NETCORE_API void CleanRegistryIndexes(const TArrayView< int32 > &IndexesToClean)
Definition NetSubObjectRegistry.cpp:53
bool IsEmpty() const
Definition NetSubObjectRegistry.h:48
NETCORE_API bool IsSubObjectInRegistry(const UObject *SubObject) const
Definition NetSubObjectRegistry.cpp:48
EResult
Definition NetSubObjectRegistry.h:33