UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NetObjectFactory.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6
10
11#include "Misc/EnumClassFlags.h"
12#include "Misc/Optional.h"
13
14#include "NetObjectFactory.generated.h"
15
18
19namespace UE::Net
20{
21 class FNetSerializationContext;
22
23 struct FNetObjectResolveContext;
24
26}
27
28namespace UE::Net
29{
30
45
46/*
47 * Class holding the raw information allowing any client from retrieving or allocating a replicated UObject instance.
48 * Can also implement the serialization of it's data into a bitstream
49 */
51{
52public:
53
55
56 void SetProtocolId(uint32 InId) { ProtocolIdentifier = InId; }
58
59 FReplicationProtocolIdentifier GetProtocolId() const { return ProtocolIdentifier; }
60 FNetObjectFactoryId GetNetFactoryId() const { return FactoryId; }
61
63 virtual FString ToString() const { return TEXT("NotImplemented"); }
64
65private:
66
67 FReplicationProtocolIdentifier ProtocolIdentifier = 0;
69};
70
71} // end namespace UE::Net
72
77UCLASS(MinimalAPI, transient, abstract)
79{
81
82public:
83
85 void Deinit();
86 void PostReceiveUpdate();
87
88 struct FInstantiateResult;
91 struct FPostInitContext;
92 struct FDestroyedContext;
93 struct FWorldInfoContext;
94 struct FWorldInfoData;
95
103
111
119
127
134
140 virtual void PostInit(const FPostInitContext& Context) {}
141
148 virtual void DetachedFromReplication(const FDestroyedContext& Context) PURE_VIRTUAL(UNetObjectFactory::DetachedFromReplication, );
149
153 UE_DEPRECATED(5.7, "Replaced by DetachedFromReplication")
154 virtual void DestroyReplicatedObject(const FDestroyedContext& Context) final {}
155
165
173
181
184
185public:
186
197
215
218 {
220 UObject* Instance = nullptr;
224 uint32 ConnectionId = 0;
225 };
226
235
246
249 {
250 None = 0x0000,
251 Location = 0x0001,
252 CullDistance = 0x0002,
253 All = Location | CullDistance,
254 };
255
258 {
260 UObject* Instance = nullptr;
261
264
266 EWorldInfoRequested InfoRequested = EWorldInfoRequested::All;
267 };
268
271 {
274
276 float CullDistance = 0.0f;
277 };
278
279protected:
280
282 virtual void OnInit() {}
283
285 virtual void OnDeinit() {}
286
288 virtual void OnPostReceiveUpdate() {}
289
296
304
311
312protected:
313
314 UObjectReplicationBridge* Bridge = nullptr;
316
317};
318
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
constexpr FNullOpt NullOpt
Definition Optional.h:15
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
void Init()
Definition LockFreeList.h:4
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
EReplicationBridgeDestroyInstanceReason
Definition ReplicationBridgeTypes.h:56
EReplicationBridgeDestroyInstanceFlags
Definition ReplicationBridgeTypes.h:66
EReplicationBridgeCreateNetRefHandleResultFlags
Definition ReplicationBridgeTypes.h:34
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition UniquePtr.h:107
Definition NetObjectFactory.h:51
void SetFactoryId(FNetObjectFactoryId InId)
Definition NetObjectFactory.h:57
virtual ~FNetObjectCreationHeader()
Definition NetObjectFactory.h:54
void SetProtocolId(uint32 InId)
Definition NetObjectFactory.h:56
FReplicationProtocolIdentifier GetProtocolId() const
Definition NetObjectFactory.h:59
FNetObjectFactoryId GetNetFactoryId() const
Definition NetObjectFactory.h:60
virtual FString ToString() const
Definition NetObjectFactory.h:63
Definition NetRefHandle.h:25
bool IsValid() const
Definition NetRefHandle.h:44
Definition NetSerializationContext.h:31
Definition NetObjectFactory.h:79
virtual void OnInit()
Definition NetObjectFactory.h:282
virtual void SubObjectDetachedFromReplication(const FDestroyedContext &Context)
Definition NetObjectFactory.h:172
virtual void OnPostReceiveUpdate()
Definition NetObjectFactory.h:288
virtual void PostInit(const FPostInitContext &Context)
Definition NetObjectFactory.h:140
virtual void SubObjectCreatedFromReplication(UE::Net::FNetRefHandle RootObject, UE::Net::FNetRefHandle SubObjectCreated)
Definition NetObjectFactory.h:164
virtual FInstantiateResult InstantiateReplicatedObjectFromHeader(const FInstantiateContext &Context, const UE::Net::FNetObjectCreationHeader *Header) PURE_VIRTUAL(UNetObjectFactory
Definition NetObjectFactory.h:126
virtual bool SerializeHeader(const UE::Net::FCreationHeaderContext &Context, const UE::Net::FNetObjectCreationHeader *Header) PURE_VIRTUAL(UNetObjectFactory
Definition NetObjectFactory.h:303
EWorldInfoRequested
Definition NetObjectFactory.h:249
virtual void PostInstantiation(const FPostInstantiationContext &Context)
Definition NetObjectFactory.h:133
virtual TUniquePtr< UE::Net::FNetObjectCreationHeader > CreateAndFillHeader(UE::Net::FNetRefHandle Handle) PURE_VIRTUAL(UNetObjectFactory
Definition NetObjectFactory.h:295
virtual float GetPollFrequency(UE::Net::FNetRefHandle RootObjectHandle, UObject *RootObjectInstance) PURE_VIRTUAL(UNetObjectFactory
Definition NetObjectFactory.h:183
virtual TUniquePtr< UE::Net::FNetObjectCreationHeader > CreateAndDeserializeHeader(const UE::Net::FCreationHeaderContext &Context) PURE_VIRTUAL(UNetObjectFactory
Definition NetObjectFactory.h:310
virtual void OnDeinit()
Definition NetObjectFactory.h:285
virtual TOptional< FWorldInfoData > GetWorldInfo(const FWorldInfoContext &Context) const PURE_VIRTUAL(UNetObjectFactory
Definition NetObjectFactory.h:180
Definition ObjectReplicationBridge.h:83
Definition Object.h:95
Definition NetworkVersion.cpp:28
uint32 FReplicationProtocolIdentifier
Definition ReplicationProtocol.h:13
uint8 FNetObjectFactoryId
Definition NetObjectFactoryRegistry.h:18
@ InvalidNetObjectFactoryId
Definition NetObjectFactoryRegistry.h:19
Definition Optional.h:131
static CORE_API const TVector< double > ZeroVector
Definition Vector.h:79
Definition NetObjectFactory.h:33
UObjectReplicationBridge * Bridge
Definition NetObjectFactory.h:37
FNetRefHandle Handle
Definition NetObjectFactory.h:35
FCreationHeaderContext(FNetRefHandle InHandle, UObjectReplicationBridge *InBridge, UNetObjectFactory *InFactory, FNetSerializationContext &InSerialization)
Definition NetObjectFactory.h:43
UNetObjectFactory * Factory
Definition NetObjectFactory.h:39
FNetSerializationContext & Serialization
Definition NetObjectFactory.h:41
Definition ObjectReferenceCacheFwd.h:30
Definition NetObjectFactory.h:238
Definition NetObjectFactory.h:200
bool IsRootObject() const
Definition NetObjectFactory.h:212
bool IsSubObject() const
Definition NetObjectFactory.h:213
FInstantiateContext(UE::Net::FNetRefHandle InHandle, const UE::Net::FNetObjectResolveContext &InResolveContext, UE::Net::FNetRefHandle InRootObjectHandle)
Definition NetObjectFactory.h:209
const UE::Net::FNetObjectResolveContext & ResolveContext
Definition NetObjectFactory.h:204
UE::Net::FNetRefHandle Handle
Definition NetObjectFactory.h:202
UE::Net::FNetRefHandle RootObjectOfSubObject
Definition NetObjectFactory.h:207
Definition NetObjectFactory.h:189
Definition NetObjectFactory.h:229
UE::Net::FNetRefHandle Handle
Definition NetObjectFactory.h:233
Definition NetObjectFactory.h:218
Definition NetObjectFactory.h:258
UE::Net::FNetRefHandle Handle
Definition NetObjectFactory.h:263
Definition NetObjectFactory.h:271