UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ChunkedDataReader.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Containers/Array.h"
8
10
14
18
20
21namespace UE::Net::Private
22{
23
24// Used by ChunkedDataStream to reading and dispatching incoming data
26{
27public:
28
32
44
45 // RecvQueue entry
47 {
48 // Returns true if this is a processed export payload
50 {
52 }
53
58 };
59
74
75public:
76
79
82 bool TryResolveUnresolvedMustBeMappedReferences(TArray<FNetRefHandle>& MustBeMappedReferences, EIrisAsyncLoadingPriority IrisAsyncLoadingPriority);
85
88 void SetError(const FString& InErrorMessage);
89 bool HasError() const;
91
92public:
93
95
96 // Incoming data
98
99 // Received data, ready to dispatch
101
102 // Next expected sequence number
104
105 // We have encountered and error, and should close the DataStream
106 bool bHasError = false;
107
108 // Cached on init
114
115 // Resolved references for which we have are holding on to references to avoid GC, must be released on exit
117
118 // Exports
120
121 // Maximum undispatched payload bytes, if this is overflown datastream will be put in error state and closed
123
124 // Current number of received payload bytes ready to dispatch
126
127 // Offset used when folding multiple exports payload processed after reading the same pacekt
129};
130
131} // End of namespace(s)
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EIrisAsyncLoadingPriority
Definition ObjectReferenceTypes.h:14
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition ChunkedDataStream.h:32
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition RingBuffer.h:135
Definition UniquePtr.h:107
EDispatchResult
Definition ChunkedDataStream.h:52
EWriteResult
Definition DataStream.h:65
Definition NetSerializationContext.h:31
Definition NetToken.h:112
Definition ChunkedDataReader.h:26
TRingBuffer< FRecvQueueEntry > ReceiveQueue
Definition ChunkedDataReader.h:100
bool bHasError
Definition ChunkedDataReader.h:106
void AssemblePayloadsPendingAssembly(UE::Net::FNetSerializationContext &Context)
Definition ChunkedDataReader.cpp:171
bool ProcessExportPayload(FNetSerializationContext &Context, FRecvQueueEntry &Entry)
Definition ChunkedDataReader.cpp:102
void ReadData(UE::Net::FNetSerializationContext &Context)
Definition ChunkedDataReader.cpp:402
UE::Net::FIrisPackageMapExports PackageMapExports
Definition ChunkedDataReader.h:119
uint64 MaxUndispatchedPayloadBytes
Definition ChunkedDataReader.h:122
TRingBuffer< FDataChunk > DataChunksPendingAssembly
Definition ChunkedDataReader.h:97
FInitParameters InitParams
Definition ChunkedDataReader.h:109
uint32 GetNumReceivedPayloadsPendingDispatch() const
Definition ChunkedDataReader.cpp:392
uint64 CurrentUndispatchedPayloadBytes
Definition ChunkedDataReader.h:125
UReplicationSystem * ReplicationSystem
Definition ChunkedDataReader.h:110
void SetError(const FString &InErrorMessage)
Definition ChunkedDataReader.cpp:489
UChunkedDataStream::EDispatchResult DispatchReceivedPayload(TFunctionRef< void(TConstArrayView64< uint8 >)> DispatchPayloadFunction)
Definition ChunkedDataReader.cpp:323
TArray< FNetRefHandle, TInlineAllocator< 4 > > ResolvedReferences
Definition ChunkedDataReader.h:116
UChunkedDataStream::EDispatchResult DispatchReceivedPayloads(TFunctionRef< void(TConstArrayView64< uint8 >)> DispatchPayloadFunction)
Definition ChunkedDataReader.cpp:382
void ResetResolvedReferences()
Definition ChunkedDataReader.cpp:85
bool HasError() const
Definition ChunkedDataReader.cpp:498
FNetTokenResolveContext NetTokenResolveContext
Definition ChunkedDataReader.h:113
~FChunkedDataReader()
Definition ChunkedDataReader.cpp:97
uint32 MultiExportsPayLoadOffset
Definition ChunkedDataReader.h:128
FObjectReferenceCache * ObjectReferenceCache
Definition ChunkedDataReader.h:111
uint16 ExpectedSeq
Definition ChunkedDataReader.h:103
FNetObjectResolveContext ResolveContext
Definition ChunkedDataReader.h:112
bool TryResolveUnresolvedMustBeMappedReferences(TArray< FNetRefHandle > &MustBeMappedReferences, EIrisAsyncLoadingPriority IrisAsyncLoadingPriority)
Definition ChunkedDataReader.cpp:269
Definition ObjectReferenceCache.h:38
Definition ReplicationSystem.h:70
Definition NetworkVersion.cpp:28
Definition DataStream.h:124
Definition DataStream.h:102
Definition IrisPackageMapExportUtil.h:20
static IRISCORE_API void FreeDynamicState(FNetSerializationContext &Context, QuantizedType &Value)
Definition IrisPackageMapExportUtil.cpp:297
Definition IrisObjectReferencePackageMap.h:21
Definition ObjectReferenceCacheFwd.h:30
Definition ChunkedDataReader.h:61
uint16 PartByteCount
Definition ChunkedDataReader.h:70
uint16 bIsExportChunk
Definition ChunkedDataReader.h:72
uint16 bIsFirstChunk
Definition ChunkedDataReader.h:71
void Deserialize(UE::Net::FNetSerializationContext &Context)
Definition ChunkedDataReader.cpp:33
FDataChunk()
Definition ChunkedDataReader.cpp:17
const uint32 GetPartPayloadByteCount() const
Definition ChunkedDataReader.cpp:26
uint32 PartCount
Definition ChunkedDataReader.h:68
uint16 SequenceNumber
Definition ChunkedDataReader.h:69
TArray< uint8 > PartPayload
Definition ChunkedDataReader.h:67
bool bHasProcessedExports
Definition ChunkedDataReader.h:57
uint32 RemainingByteCount
Definition ChunkedDataReader.h:56
TArray< uint8, TAlignedHeapAllocator< 4 > > Payload
Definition ChunkedDataReader.h:54
TUniquePtr< FReferencesForImport > References
Definition ChunkedDataReader.h:55
bool GetIsProcessedExportPayload() const
Definition ChunkedDataReader.h:49
~FReferencesForImport()
Definition ChunkedDataReader.h:39
EIrisAsyncLoadingPriority IrisAsyncLoadingPriority
Definition ChunkedDataReader.h:37
TArray< FNetRefHandle > MustBeMappedReferences
Definition ChunkedDataReader.h:36
FIrisPackageMapExportsQuantizedType QuantizedExports
Definition ChunkedDataReader.h:35