UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InternalNetSerializationContext.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"
8
10class UObject;
12
13namespace UE::Net::Private
14{
15 class FObjectReferenceCache;
16}
17
18namespace UE::Net::Private
19{
20
22{
23public:
30
33
34 void Init(const FInitParameters& Params);
35
36 // We allow memory allocations for dynamic states
37 void* Alloc(SIZE_T Size, SIZE_T Alignment);
38 void Free(void* Ptr);
39 void* Realloc(void* PrevAddress, SIZE_T NewSize, uint32 Alignment);
40
44
45 // We have a special implementation of UPackageMap to capture references when using LastResortNetSerializer
47
48 // $IRIS TODO Roles really shouldn't be replicated as properties. In dire need of a proper authority system.
49 // This is ONLY to be used by role serialization.
51
52 // Allow References to be inlined in serialized state
54
55 // If true, object references will be quantized & serialized as FRemoteObjectIds instead of FNetObjectReferences.
56 // Requires UE_WITH_REMOTE_OBJECT_HANDLE.
58};
59
61: ReplicationSystem(nullptr)
62, ObjectReferenceCache(nullptr)
63, PackageMap(nullptr)
64, bDowngradeAutonomousProxyRole(0)
65, bInlineObjectReferenceExports(0)
66, bSerializeObjectReferencesAsRemoteIds(0)
67{}
68
69// Scope used when we actually want to export references.
71{
72public:
75
76private:
77 FInternalNetSerializationContext* InternalContext;
78 uint32 bOldInlineObjectReferences = 0U;
79};
80
82: InternalContext(InContext)
83{
84 if (InternalContext)
85 {
86 bOldInlineObjectReferences = InternalContext->bInlineObjectReferenceExports;
87 InternalContext->bInlineObjectReferenceExports = 1U;
88 }
89}
90
92{
93 if (InternalContext)
94 {
95 // Restore state
96 InternalContext->bInlineObjectReferenceExports = bOldInlineObjectReferences;
97 }
98}
99
100}
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
uint32 Size
Definition VulkanMemory.cpp:4034
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition InternalNetSerializationContext.h:71
FForceInlineExportScope(FInternalNetSerializationContext *InContext)
Definition InternalNetSerializationContext.h:81
~FForceInlineExportScope()
Definition InternalNetSerializationContext.h:91
Definition InternalNetSerializationContext.h:22
uint32 bDowngradeAutonomousProxyRole
Definition InternalNetSerializationContext.h:50
UIrisObjectReferencePackageMap * PackageMap
Definition InternalNetSerializationContext.h:46
UReplicationSystem * ReplicationSystem
Definition InternalNetSerializationContext.h:41
FNetObjectResolveContext ResolveContext
Definition InternalNetSerializationContext.h:43
FObjectReferenceCache * ObjectReferenceCache
Definition InternalNetSerializationContext.h:42
uint32 bInlineObjectReferenceExports
Definition InternalNetSerializationContext.h:53
FInternalNetSerializationContext()
Definition InternalNetSerializationContext.h:60
void * Realloc(void *PrevAddress, SIZE_T NewSize, uint32 Alignment)
Definition InternalNetSerializationContext.cpp:31
uint32 bSerializeObjectReferencesAsRemoteIds
Definition InternalNetSerializationContext.h:57
void * Alloc(SIZE_T Size, SIZE_T Alignment)
Definition InternalNetSerializationContext.cpp:21
Definition ObjectReferenceCache.h:38
Definition IrisObjectReferencePackageMap.h:72
Definition Object.h:95
Definition ReplicationSystem.h:70
Definition NetworkVersion.cpp:28
Definition ObjectReferenceCacheFwd.h:30
Definition InternalNetSerializationContext.h:25
UIrisObjectReferencePackageMap * PackageMap
Definition InternalNetSerializationContext.h:28
UReplicationSystem * ReplicationSystem
Definition InternalNetSerializationContext.h:26
FNetObjectResolveContext ObjectResolveContext
Definition InternalNetSerializationContext.h:27