UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NetSerializationContext.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7
8class FName;
11namespace UE::Net
12{
13 class FNetBitArrayView;
14 class FNetBitStreamReader;
15 class FNetBitStreamWriter;
16 class FNetTokenStore;
17 class FNetTokenStoreState;
18
19 namespace Private
20 {
21 class FInternalNetSerializationContext;
22 class FNetExportContext;
23 class FNetStatsContext;
24 }
25}
26
27namespace UE::Net
28{
29
31{
32public:
37
38 FNetBitStreamReader* GetBitStreamReader() { return BitStreamReader; }
39 FNetBitStreamWriter* GetBitStreamWriter() { return BitStreamWriter; }
40
43
45 FNetTraceCollector* GetTraceCollector() { return TraceCollector; }
46
47 bool HasError() const { return ErrorContext.HasError(); }
48 bool HasErrorOrOverflow() const;
49
51 void SetError(const FName Error, bool bDoOverFlow = true);
52 FName GetError() const { return ErrorContext.GetError(); }
53
56 const FNetRefHandle& GetErrorHandleContext() const { return ErrorContext.GetObjectHandle(); }
57
59 void ResetErrorContext() { ErrorContext = FNetErrorContext(); }
60
62 void AddReadJournalEntry(const TCHAR* Name);
63
65 void AddReadJournalEntry(const FNetDebugName* DebugName);
66
68 FString PrintReadJournal();
69
70 void ResetReadJournal() { ReadJournal.Reset(); }
71
72 void SetIsInitState(bool bInIsInitState) { bIsInitState = bInIsInitState; }
73 bool IsInitState() const { return bIsInitState; }
74
75 // If set, this is the changemask for the entire protocol
77 const FNetBitArrayView* GetChangeMask() const { return ChangeMask; }
78
79 INetBlobReceiver* GetNetBlobReceiver() { return NetBlobReceiver; }
81
83 uint32 GetLocalConnectionId() const { return LocalConnectionId; }
84
92
96
99
101 Private::FNetExportContext* GetExportContext() { return ExportContext; }
102
104 Private::FNetStatsContext* GetNetStatsContext() { return NetStatsContext; }
105
107 bool IsInitializingDefaultState() const { return bIsInitializingDefaultState; }
108
109 void SetPacketId(int32 InPacketId) { PacketId = InPacketId; }
110 int32 GetPacketId() const { return PacketId; }
111
112private:
113 IRISCORE_API bool IsBitStreamOverflown() const;
114 IRISCORE_API void SetBitStreamOverflow();
115
116 FNetErrorContext ErrorContext;
117 FNetJournal ReadJournal;
118
119 FNetBitStreamReader* BitStreamReader = nullptr;
120 FNetBitStreamWriter* BitStreamWriter = nullptr;
121 FNetTraceCollector* TraceCollector = nullptr;
122
123 Private::FInternalNetSerializationContext* InternalContext = nullptr;
124 Private::FNetExportContext* ExportContext = nullptr;
125 Private::FNetStatsContext* NetStatsContext = nullptr;
126
127 const FNetBitArrayView* ChangeMask = nullptr;
128 INetBlobReceiver* NetBlobReceiver = nullptr ;
129
130 uint32 LocalConnectionId = 0;
131 int32 PacketId = -1;
132
134 uint32 bIsInitState : 1;
136 uint32 bIsInitializingDefaultState : 1;
137};
138
139// Implementation
141: BitStreamReader(InBitStreamReader)
142, BitStreamWriter(InBitStreamWriter)
143, bIsInitState(0)
144, bIsInitializingDefaultState(0)
145{
146}
147
152
157
162
172
182
184{
185 if (bDoOverFlow)
186 {
187 SetBitStreamOverflow();
188 }
189 ErrorContext.SetError(Error);
190}
191
196
198{
199 return ErrorContext.HasError() || IsBitStreamOverflown();
200}
201
202}
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
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
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition NetBlobHandler.h:23
Definition NetBitArray.h:337
Definition NetBitStreamReader.h:11
Definition NetBitStreamWriter.h:11
Definition NetErrorContext.h:22
bool HasError() const
Definition NetErrorContext.h:42
IRISCORE_API void SetError(const FName Error)
Definition NetErrorContext.cpp:17
void SetObjectHandle(const FNetRefHandle &InObjectHandle)
Definition NetErrorContext.h:32
FName GetError() const
Definition NetErrorContext.h:30
const FNetRefHandle & GetObjectHandle() const
Definition NetErrorContext.h:34
Definition NetJournal.h:32
void Reset()
Definition NetJournal.h:37
Definition NetRefHandle.h:25
Definition NetSerializationContext.h:31
IRISCORE_API const UE::Net::FNetTokenStoreState * GetRemoteNetTokenStoreState() const
Definition NetSerializationContext.cpp:107
FName GetError() const
Definition NetSerializationContext.h:52
Private::FNetStatsContext * GetNetStatsContext()
Definition NetSerializationContext.h:104
FNetSerializationContext()
Definition NetSerializationContext.h:148
FNetTraceCollector * GetTraceCollector()
Definition NetSerializationContext.h:45
int32 GetPacketId() const
Definition NetSerializationContext.h:110
bool IsInitState() const
Definition NetSerializationContext.h:73
void SetErrorHandleContext(const FNetRefHandle &HandleContext)
Definition NetSerializationContext.h:192
void ResetReadJournal()
Definition NetSerializationContext.h:70
void SetChangeMask(const FNetBitArrayView *InChangeMask)
Definition NetSerializationContext.h:76
void ResetErrorContext()
Definition NetSerializationContext.h:59
FNetSerializationContext MakeSubContext(FNetBitStreamWriter *) const
Definition NetSerializationContext.h:163
bool HasErrorOrOverflow() const
Definition NetSerializationContext.h:197
void SetIsInitializingDefaultState(bool bInIsInitializingDefaultState)
Definition NetSerializationContext.h:106
void SetExportContext(Private::FNetExportContext *InExportContext)
Definition NetSerializationContext.h:100
FNetBitStreamReader * GetBitStreamReader()
Definition NetSerializationContext.h:38
IRISCORE_API const UE::Net::FNetTokenStore * GetNetTokenStore() const
Definition NetSerializationContext.cpp:83
IRISCORE_API UObject * GetLocalConnectionUserData(uint32 ConnectionId)
Definition NetSerializationContext.cpp:61
void SetInternalContext(Private::FInternalNetSerializationContext *InInternalContext)
Definition NetSerializationContext.h:97
bool HasError() const
Definition NetSerializationContext.h:47
Private::FInternalNetSerializationContext * GetInternalContext()
Definition NetSerializationContext.h:98
void SetError(const FName Error, bool bDoOverFlow=true)
Definition NetSerializationContext.h:183
void AddReadJournalEntry(const TCHAR *Name)
Definition NetSerializationContext.cpp:27
const FNetRefHandle & GetErrorHandleContext() const
Definition NetSerializationContext.h:56
uint32 GetLocalConnectionId() const
Definition NetSerializationContext.h:83
FString PrintReadJournal()
Definition NetSerializationContext.cpp:43
bool IsInitializingDefaultState() const
Definition NetSerializationContext.h:107
void SetLocalConnectionId(uint32 InLocalConnectionId)
Definition NetSerializationContext.h:82
FNetBitStreamWriter * GetBitStreamWriter()
Definition NetSerializationContext.h:39
const FNetBitArrayView * GetChangeMask() const
Definition NetSerializationContext.h:77
void SetTraceCollector(FNetTraceCollector *InTraceCollector)
Definition NetSerializationContext.h:44
void SetIsInitState(bool bInIsInitState)
Definition NetSerializationContext.h:72
void SetPacketId(int32 InPacketId)
Definition NetSerializationContext.h:109
Private::FNetExportContext * GetExportContext()
Definition NetSerializationContext.h:101
INetBlobReceiver * GetNetBlobReceiver()
Definition NetSerializationContext.h:79
void SetNetBlobReceiver(INetBlobReceiver *InNetBlobReceiver)
Definition NetSerializationContext.h:80
void SetNetStatsContext(Private::FNetStatsContext *InNetStatsContext)
Definition NetSerializationContext.h:103
Definition NetTokenStore.cpp:22
Definition NetTokenStore.h:189
Definition InternalNetSerializationContext.h:22
Definition NetExportContext.h:17
Definition NetStatsContext.h:62
Definition Object.h:95
Definition OverriddenPropertySet.cpp:45
Definition NetworkVersion.cpp:28
Definition NetDebugName.h:17