UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CoreNet.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"
7#include "Containers/Map.h"
8#include "Containers/Set.h"
10#include "Delegates/Delegate.h"
11#include "HAL/PlatformMath.h"
13#include "Misc/NetworkGuid.h"
16#include "Templates/PimplPtr.h"
19#include "Trace/Config.h"
20#include "UObject/Class.h"
22#include "UObject/Field.h"
23#include "UObject/Object.h"
29
30#include "CoreNet.generated.h"
31
32class FArchive;
33class FName;
35class FGuidReferences;
36class FOutBunch;
37class FOutputDevice;
38class FProperty;
40class UClass;
41class UField;
42class UFunction;
43class UPackageMap;
44class UStruct;
45struct FObjectPtr;
46struct FSoftObjectPath;
47struct FSoftObjectPtr;
48
49namespace UE::Net
50{
51 struct FNetResult;
52
53 class FReplicationFragment;
54 struct FReplicationStateDescriptor;
55 typedef FReplicationFragment* (*CreateAndRegisterReplicationFragmentFunc)(UObject* Owner, const FReplicationStateDescriptor* Descriptor, FFragmentRegistrationContext& Context);
56
59
60 namespace Private
61 {
63 };
64}
65
66
68
69//
70// Information about a field.
71//
86
87//
88// Information about a class, cached for network coordination.
89//
91{
92 friend class FClassNetCacheMgr;
93public:
96
98 {
99 return FieldsBase + Fields.Num();
100 }
101
103 {
104 FFieldNetCache* Result = NULL;
105
106 for ( const FClassNetCache* C= this; C; C = C->Super )
107 {
108 if ( ( Result = C->FieldMap.FindRef( Field.GetRawPointer() ) ) != NULL )
109 {
110 break;
111 }
112 }
113 return Result;
114 }
115
116 const FFieldNetCache* GetFromChecksum( const uint32 Checksum ) const
117 {
118 FFieldNetCache* Result = NULL;
119
120 for ( const FClassNetCache* C = this; C; C = C->Super )
121 {
122 if ( ( Result = C->FieldChecksumMap.FindRef( Checksum ) ) != NULL )
123 {
124 break;
125 }
126 }
127 return Result;
128 }
129
131 {
132 for ( const FClassNetCache* C = this; C; C = C->Super )
133 {
134 if ( Index >= C->FieldsBase && Index < C->FieldsBase + C->Fields.Num() )
135 {
136 return &C->Fields[Index-C->FieldsBase];
137 }
138 }
139 return NULL;
140 }
141
142 uint32 GetClassChecksum() const { return ClassChecksum; }
143
144 const FClassNetCache* GetSuper() const { return Super; }
145 const TArray< FFieldNetCache >& GetFields() const { return Fields; }
146
147 COREUOBJECT_API void CountBytes(FArchive& Ar) const;
148
149private:
150 int32 FieldsBase;
151 const FClassNetCache* Super;
153 uint32 ClassChecksum;
156 TMap< uint32, FFieldNetCache* > FieldChecksumMap;
157};
158
159
184
185
186//
187// Maps objects and names to and from indices for network communication.
188//
189UCLASS(Transient, Abstract, MinimalAPI, Config=Engine)
191{
193public:
194
195 virtual bool WriteObject( FArchive & Ar, UObject* InOuter, FNetworkGUID NetGUID, FString ObjName ) { return false; }
196
197 // @todo document
198 virtual bool SerializeObject( FArchive& Ar, UClass* InClass, UObject*& Obj, FNetworkGUID *OutNetGUID = NULL ) { return false; }
199
200 // @todo document
201 COREUOBJECT_API virtual bool SerializeName( FArchive& Ar, FName& InName );
202
203 static COREUOBJECT_API bool StaticSerializeName( FArchive& Ar, FName& InName );
204
205 virtual UObject* ResolvePathAndAssignNetGUID( const FNetworkGUID& NetGUID, const FString& PathName ) { return NULL; }
206
207 virtual bool SerializeNewActor(FArchive & Ar, class UActorChannel * Channel, class AActor *& Actor) { return false; }
208
209 virtual void ReceivedNak( const int32 NakPacketId ) { }
210 virtual void ReceivedAck( const int32 AckPacketId ) { }
211 virtual void NotifyBunchCommit( const int32 OutPacketId, const FOutBunch* OutBunch ) { }
212
213 virtual void GetNetGUIDStats(int32& AckCount, int32& UnAckCount, int32& PendingCount) { }
214
216
217 virtual bool PrintExportBatch() { return false; }
218
219 void SetDebugContextString( const FString& Str ) { DebugContextString = Str; }
220 void ClearDebugContextString() { DebugContextString.Empty(); }
221
222 void ResetTrackedGuids( bool bShouldTrack ) { TrackedUnmappedNetGuids.Empty(); TrackedMappedDynamicNetGuids.Empty(); bShouldTrackUnmappedGuids = bShouldTrack; }
223 const TSet< FNetworkGUID > & GetTrackedUnmappedGuids() const { return TrackedUnmappedNetGuids; }
224 const TSet< FNetworkGUID > & GetTrackedDynamicMappedGuids() const { return TrackedMappedDynamicNetGuids; }
225
228
229 // For sync load debugging with LogNetSyncLoads
232
233 virtual void LogDebugInfo( FOutputDevice & Ar) { }
234 virtual UObject* GetObjectFromNetGUID( const FNetworkGUID& NetGUID, const bool bIgnoreMustBeMapped ) { return NULL; }
235 virtual FNetworkGUID GetNetGUIDFromObject( const UObject* InObject) const { return FNetworkGUID(); }
236 virtual bool IsGUIDBroken( const FNetworkGUID& NetGUID, const bool bMustBeRegistered ) const { return false; }
237 virtual bool IsUsingRemoteObjectReferences() const { return false; }
238
239 COREUOBJECT_API virtual void Serialize(FArchive& Ar) override;
240
241 // Provides access to the context required to resolve received NetTokens.
242 virtual const UE::Net::FNetTokenResolveContext* GetNetTokenResolveContext() const { return nullptr; }
243
247
248protected:
252
254};
255
256
259{
260 FPacketIdRange(int32 _First, int32 _Last) : First(_First), Last(_Last) { }
261 FPacketIdRange(int32 PacketId) : First(PacketId), Last(PacketId) { }
265
266 bool InRange(int32 PacketId) const
267 {
268 return (First <= PacketId && PacketId <= Last);
269 }
270};
271
272
291
292
300{
301public:
302
305
308
311
313 bool bIsPushBased = false;
314
317
318 FLifetimeProperty() = default;
319
325
334
335 inline bool operator==(const FLifetimeProperty& Other) const
336 {
337 if (RepIndex == Other.RepIndex)
338 {
339 // Can't have different conditions if the RepIndex matches, doesn't make sense
340 check(Condition == Other.Condition);
341 check(RepNotifyCondition == Other.RepNotifyCondition);
342 check(bIsPushBased == Other.bIsPushBased);
343 check(CreateAndRegisterReplicationFragmentFunction == Other.CreateAndRegisterReplicationFragmentFunction);
344 return true;
345 }
346
347 return false;
348 }
349};
350
351template <> struct TIsZeroConstructType<FLifetimeProperty> { enum { Value = true }; };
352
353GENERATE_MEMBER_FUNCTION_CHECK(GetLifetimeReplicatedProps, void, const, TArray<FLifetimeProperty>&)
354
355
359template<typename T>
361{
362public:
363 TNetDoNotCopyPtr() : Ptr(nullptr) {}
364 TNetDoNotCopyPtr(const TNetDoNotCopyPtr&) : Ptr(nullptr) {}
365 TNetDoNotCopyPtr(TNetDoNotCopyPtr&&) { Ptr = nullptr; }
366 TNetDoNotCopyPtr& operator=(const TNetDoNotCopyPtr& Other) { Ptr = nullptr; return *this; }
367 TNetDoNotCopyPtr& operator=(TNetDoNotCopyPtr&&) { Ptr = nullptr; return *this; }
368 void Set(T* InPtr) { Ptr = InPtr; }
369 T* Get() const { return Ptr; }
370private:
371 T* Ptr;
372};
373
374#if UE_TRACE_ENABLED
376#endif
377
384{
385public:
389
391
392#if UE_TRACE_ENABLED
394#endif
395
396 COREUOBJECT_API virtual FArchive& operator<<(FName& Name) override;
397 COREUOBJECT_API virtual FArchive& operator<<(UObject*& Object) override;
401 COREUOBJECT_API virtual FArchive& operator<<(struct FWeakObjectPtr& Value) override;
402
403 COREUOBJECT_API virtual void CountMemory(FArchive& Ar) const override;
404
405 /* Context allowing exports of NetTokens from NetSerialize(), the context will not be copied when copying NetBitWriter */
407};
408
440
442inline uint32 GetBitStreamPositionForNetTrace(const FBitWriter& Stream) { return (uint32)Stream.GetNumBits(); }
443inline uint32 GetBitStreamPositionForNetTrace(const FBitReader& Stream) { return (uint32)Stream.GetPosBits(); }
444
445#if UE_TRACE_ENABLED
446inline FNetTraceCollector* GetTraceCollector(const FNetBitWriter& BitWriter) { return BitWriter.TraceCollector.Get(); }
447inline void SetTraceCollector(FNetBitWriter& BitWriter, FNetTraceCollector* Collector) { BitWriter.TraceCollector.Set(Collector); }
448#else
449inline FNetTraceCollector* GetTraceCollector(const FNetBitWriter& BitWriter) { return nullptr; }
450inline void SetTraceCollector(FNetBitWriter& BitWriter, FNetTraceCollector* Collector) {}
451#endif
452
454{
455 if ( A.Num() != B.Num() )
456 {
457 return false;
458 }
459
460 for ( const FNetworkGUID& CompareGuid : A )
461 {
462 if ( !B.Contains( CompareGuid ) )
463 {
464 return false;
465 }
466 }
467
468 return true;
469}
470
475class INetDeltaBaseState : public TSharedFromThis<INetDeltaBaseState>
476{
477public:
479 : LastAckedHistory(0)
480 , ChangelistHistory(0)
481 {
482
483 }
484
486
488
493 virtual void CountBytes(FArchive& Ar) const {}
494
495 uint32 GetLastAckedHistory() const { return LastAckedHistory; }
497
498 uint32 GetChangelistHistory() const { return ChangelistHistory; }
500
501private:
502 uint32 LastAckedHistory;
503 uint32 ChangelistHistory;
504};
505
507
514{
515protected:
516
518
519public:
520
522
523 virtual ~INetSerializeCB() {}
524
540
546
554
560
566};
567
568
570{
571public:
572 UE_DEPRECATED(5.5, "Will be removed or renamed and used to pass paramters.")
575};
576
578{
579public:
582 : CurrentState(true /* initial value of all bits */, NumProperties)
583 , DynamicConditionChangeCounter(0)
584 {
585 }
586
587 void SetActiveState(const uint16 RepIndex, const bool bIsActive)
588 {
589 CurrentState[RepIndex] = bIsActive;
590 }
591
592 bool GetActiveState(const uint16 RepIndex) const
593 {
594 return CurrentState[RepIndex];
595 }
596
597 void SetDynamicCondition(const uint16 RepIndex, const ELifetimeCondition Condition)
598 {
599 static_assert(static_cast<__underlying_type(ELifetimeCondition)>(ELifetimeCondition::COND_Max - 1) <= int16(32767), "Unable to use int16 for ELifetimeCondition values");
600
601 ++DynamicConditionChangeCounter;
602 DynamicConditions.Emplace(RepIndex, static_cast<int16>(Condition));
603 }
604
606 {
607 if (const int16* Condition = DynamicConditions.Find(RepIndex))
608 {
609 return static_cast<const ELifetimeCondition>(*Condition);
610 }
611
612 return COND_Dynamic;
613 }
614
615
617 {
618 return CurrentState.Num();
619 }
620
622 {
623 return DynamicConditionChangeCounter;
624 }
625
626 void CountBytes(FArchive& Ar) const
627 {
628 CurrentState.CountBytes(Ar);
629 }
630
631private:
632 TBitArray<> CurrentState;
633 // Storing int16 instead of int-sized ELifetimeCondition to save some memory.
634 TMap<uint16, int16> DynamicConditions;
635 uint32 DynamicConditionChangeCounter;
636};
637
643{
645 FBitWriter* Writer = nullptr;
646
648 FBitReader* Reader = nullptr;
649
652
655
657 class UPackageMap* Map = nullptr;
658
660 class UNetConnection* Connection = nullptr;
661
663 void* Data = nullptr;
664
666 class UStruct* Struct = nullptr;
667
670
673
676
679
682
684 bool bGuidListsChanged = false;
685
687 bool bIsWritingOnClient = false;
688
689 //~ TODO: This feels hacky, and a better alternative might be something like connection specific
690 //~ capabilities.
691
694
697
698#if UE_SUPPORT_FOR_ACTOR_TICK_DISABLE
701#endif
702
707 bool bInternalAck = false;
708
710 UObject* Object = nullptr;
711
714
721
728
731
733
734 // Debugging variables
735 FString DebugName;
736};
737
747
752
753#define NET_ENABLE_CHECKSUMS 0
754
755
756#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) && NET_ENABLE_CHECKSUMS
757
758#define NET_CHECKSUM_OR_END(Ser) \
759{ \
760 SerializeChecksum(Ser,0xE282FA84, true); \
761}
762
763#define NET_CHECKSUM(Ser) \
764{ \
765 SerializeChecksum(Ser,0xE282FA84, false); \
766}
767
768#define NET_CHECKSUM_CUSTOM(Ser, x) \
769{ \
770 SerializeChecksum(Ser,x, false); \
771}
772
773// There are cases where a checksum failure is expected, but we still need to eat the next word (just dont without erroring)
774#define NET_CHECKSUM_IGNORE(Ser) \
775{ \
776 uint32 Magic = 0; \
777 Ser << Magic; \
778}
779
780#else
781
782// No ops in shipping builds
783#define NET_CHECKSUM(Ser)
784#define NET_CHECKSUM_IGNORE(Ser)
785#define NET_CHECKSUM_CUSTOM(Ser, x)
786#define NET_CHECKSUM_OR_END(ser)
787
788
789#endif
790
794enum { MAX_PACKET_SIZE = 1024 }; // MTU for the connection
795enum { LAN_BEACON_MAX_PACKET_SIZE = 1024 }; // MTU for the connection
796
801COREUOBJECT_API void RPC_ValidateFailed( const TCHAR* Reason );
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
ELifetimeCondition
Definition CoreNetTypes.h:20
@ COND_Dynamic
Definition CoreNetTypes.h:35
@ COND_Max
Definition CoreNetTypes.h:38
@ COND_None
Definition CoreNetTypes.h:21
ELifetimeRepNotifyCondition
Definition CoreNetTypes.h:43
@ REPNOTIFY_OnChanged
Definition CoreNetTypes.h:44
COREUOBJECT_API void SerializeChecksum(FArchive &Ar, uint32 x, bool ErrorOK)
Definition CoreNet.cpp:381
COREUOBJECT_API void RPC_ValidateFailed(const TCHAR *Reason)
Definition CoreNet.cpp:667
COREUOBJECT_API const TCHAR * RPC_GetLastFailedReason()
Definition CoreNet.cpp:672
@ LAN_BEACON_MAX_PACKET_SIZE
Definition CoreNet.h:795
void SetTraceCollector(FNetBitWriter &BitWriter, FNetTraceCollector *Collector)
Definition CoreNet.h:450
bool NetworkGuidSetsAreSame(const TSet< FNetworkGUID > &A, const TSet< FNetworkGUID > &B)
Definition CoreNet.h:453
@ MAX_PACKET_SIZE
Definition CoreNet.h:794
FNetTraceCollector * GetTraceCollector(const FNetBitWriter &BitWriter)
Definition CoreNet.h:449
COREUOBJECT_API void RPC_ResetLastFailedReason()
Definition CoreNet.cpp:663
uint32 GetBitStreamPositionForNetTrace(const FBitWriter &Stream)
Definition CoreNet.h:442
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
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
#define DECLARE_DELEGATE_RetVal_OneParam(ReturnValueType, DelegateName, Param1Type)
Definition DelegateCombinations.h:54
return true
Definition ExternalRpcRegistry.cpp:601
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define GENERATE_MEMBER_FUNCTION_CHECK(MemberName, Result, ConstModifier,...)
Definition UnrealTypeTraits.h:470
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition Engine.Build.cs:7
Definition Archive.h:1208
friend FArchive & operator<<(FArchive &Ar, ANSICHAR &Value)
Definition Archive.h:1387
Definition CoreNet.h:161
COREUOBJECT_API const FClassNetCache * GetClassNetCache(UClass *Class)
Definition CoreNet.cpp:168
COREUOBJECT_API void SortProperties(TArray< FProperty * > &Properties) const
Definition CoreNet.cpp:29
bool bDebugChecksum
Definition CoreNet.h:176
COREUOBJECT_API uint32 SortedStructFieldsChecksum(const UStruct *Struct, uint32 Checksum) const
Definition CoreNet.cpp:49
~FClassNetCacheMgr()
Definition CoreNet.h:164
COREUOBJECT_API uint32 GetFieldChecksum(const UField *Field, uint32 Checksum) const
Definition CoreNet.cpp:156
int DebugChecksumIndent
Definition CoreNet.h:177
COREUOBJECT_API uint32 GetFunctionChecksum(const UFunction *Function, uint32 Checksum) const
Definition CoreNet.cpp:127
COREUOBJECT_API void ClearClassNetCache()
Definition CoreNet.cpp:258
FClassNetCacheMgr()
Definition CoreNet.h:163
COREUOBJECT_API void CountBytes(FArchive &Ar) const
Definition CoreNet.cpp:268
COREUOBJECT_API uint32 GetPropertyChecksum(const FProperty *Property, uint32 Checksum, const bool bIncludeChildren) const
Definition CoreNet.cpp:76
Definition CoreNet.h:91
COREUOBJECT_API void CountBytes(FArchive &Ar) const
Definition CoreNet.cpp:281
int32 GetMaxIndex() const
Definition CoreNet.h:97
const FFieldNetCache * GetFromChecksum(const uint32 Checksum) const
Definition CoreNet.h:116
const TArray< FFieldNetCache > & GetFields() const
Definition CoreNet.h:145
uint32 GetClassChecksum() const
Definition CoreNet.h:142
const FFieldNetCache * GetFromField(FFieldVariant Field) const
Definition CoreNet.h:102
COREUOBJECT_API FClassNetCache()
Definition CoreNet.cpp:21
const FClassNetCache * GetSuper() const
Definition CoreNet.h:144
const FFieldNetCache * GetFromIndex(const int32 Index) const
Definition CoreNet.h:130
Definition CoreNet.h:578
int32 GetNumProperties() const
Definition CoreNet.h:616
uint32 GetDynamicConditionChangeCounter() const
Definition CoreNet.h:621
FCustomPropertyConditionState(int32 NumProperties)
Definition CoreNet.h:581
void SetActiveState(const uint16 RepIndex, const bool bIsActive)
Definition CoreNet.h:587
void SetDynamicCondition(const uint16 RepIndex, const ELifetimeCondition Condition)
Definition CoreNet.h:597
bool GetActiveState(const uint16 RepIndex) const
Definition CoreNet.h:592
ELifetimeCondition GetDynamicCondition(const uint16 RepIndex) const
Definition CoreNet.h:605
void CountBytes(FArchive &Ar) const
Definition CoreNet.h:626
Definition CoreNet.h:73
bool bIncompatible
Definition CoreNet.h:78
FFieldNetCache()
Definition CoreNet.h:80
FFieldNetCache(FFieldVariant InField, int32 InFieldNetIndex, uint32 InFieldChecksum)
Definition CoreNet.h:82
FFieldVariant Field
Definition CoreNet.h:75
int32 FieldNetIndex
Definition CoreNet.h:76
uint32 FieldChecksum
Definition CoreNet.h:77
Definition Field.h:353
Definition GuidReferences.h:50
Definition CoreNet.h:300
uint16 RepIndex
Definition CoreNet.h:304
FLifetimeProperty(int32 InRepIndex, ELifetimeCondition InCondition, ELifetimeRepNotifyCondition InRepNotifyCondition=REPNOTIFY_OnChanged, bool bInIsPushBased=false)
Definition CoreNet.h:326
bool bIsPushBased
Definition CoreNet.h:313
ELifetimeCondition Condition
Definition CoreNet.h:307
ELifetimeRepNotifyCondition RepNotifyCondition
Definition CoreNet.h:310
bool operator==(const FLifetimeProperty &Other) const
Definition CoreNet.h:335
FLifetimeProperty(int32 InRepIndex)
Definition CoreNet.h:320
UE::Net::CreateAndRegisterReplicationFragmentFunc CreateAndRegisterReplicationFragmentFunction
Definition CoreNet.h:316
FLifetimeProperty()=default
Definition NameTypes.h:617
Definition CoreNet.h:415
virtual COREUOBJECT_API ~FNetBitReader()
COREUOBJECT_API FNetBitReader & operator=(FNetBitReader &&)
UPackageMap * PackageMap
Definition CoreNet.h:417
TPimplPtr< UE::Net::FNetResult, EPimplPtrMode::DeepCopy > ExtendedError
Definition CoreNet.h:420
virtual COREUOBJECT_API void CountMemory(FArchive &Ar) const override
Definition CoreNet.cpp:654
COREUOBJECT_API FNetBitReader(const FNetBitReader &)
COREUOBJECT_API FNetBitReader(FNetBitReader &&)
COREUOBJECT_API FNetBitReader & operator=(const FNetBitReader &)
Definition CoreNet.h:384
virtual COREUOBJECT_API void CountMemory(FArchive &Ar) const override
Definition CoreNet.cpp:527
TNetDoNotCopyPtr< UE::Net::FNetTokenExportContext > NetTokenExportContext
Definition CoreNet.h:406
class UPackageMap * PackageMap
Definition CoreNet.h:390
COREUOBJECT_API FNetBitWriter()
Definition CoreNet.cpp:411
Definition NetworkGuid.h:12
Definition UObjectGlobals.h:1292
Definition DataBunch.h:24
Definition OutputDevice.h:133
Definition UnrealType.h:174
Definition CoreNet.h:476
virtual void CountBytes(FArchive &Ar) const
Definition CoreNet.h:493
uint32 GetChangelistHistory() const
Definition CoreNet.h:498
INetDeltaBaseState()
Definition CoreNet.h:478
void SetChangelistHistory(uint32 InChangelistHistory)
Definition CoreNet.h:499
virtual ~INetDeltaBaseState()
Definition CoreNet.h:485
void SetLastAckedHistory(uint32 InAckedHistory)
Definition CoreNet.h:496
virtual bool IsStateEqual(INetDeltaBaseState *Otherstate)=0
uint32 GetLastAckedHistory() const
Definition CoreNet.h:495
Definition CoreNet.h:514
INetSerializeCB()
Definition CoreNet.h:521
virtual void GatherGuidReferencesForFastArray(struct FFastArrayDeltaSerializeParams &Params)=0
virtual void NetSerializeStruct(FNetDeltaSerializeInfo &Params)=0
virtual ~INetSerializeCB()
Definition CoreNet.h:523
virtual bool NetDeltaSerializeForFastArray(struct FFastArrayDeltaSerializeParams &Params)=0
virtual void UpdateUnmappedGuidsForFastArray(struct FFastArrayDeltaSerializeParams &Params)=0
virtual bool MoveGuidToUnmappedForFastArray(struct FFastArrayDeltaSerializeParams &Params)=0
Definition CoreNet.h:570
virtual ~IRepChangedPropertyTracker()
Definition CoreNet.h:574
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_FORCEINLINE_HINT int32 Num() const
Definition BitArray.h:1466
void CountBytes(FArchive &Ar) const
Definition BitArray.h:1068
Definition UnrealString.h.inl:34
Definition CoreNet.h:361
TNetDoNotCopyPtr & operator=(TNetDoNotCopyPtr &&)
Definition CoreNet.h:367
TNetDoNotCopyPtr(const TNetDoNotCopyPtr &)
Definition CoreNet.h:364
T * Get() const
Definition CoreNet.h:369
TNetDoNotCopyPtr & operator=(const TNetDoNotCopyPtr &Other)
Definition CoreNet.h:366
TNetDoNotCopyPtr(TNetDoNotCopyPtr &&)
Definition CoreNet.h:365
void Set(T *InPtr)
Definition CoreNet.h:368
TNetDoNotCopyPtr()
Definition CoreNet.h:363
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition ActorChannel.h:78
Definition Class.h:3793
Definition ReplicationFragment.h:244
Definition NetTokenExportContext.h:21
Definition NetToken.h:112
Definition ReplicationFragment.h:176
Definition PropertyConditions.h:20
Definition Class.h:181
Definition Class.h:2476
Definition NetConnection.h:284
Definition Object.h:95
Definition CoreNet.h:191
const TSet< FNetworkGUID > & GetTrackedDynamicMappedGuids() const
Definition CoreNet.h:224
virtual bool PrintExportBatch()
Definition CoreNet.h:217
virtual bool SerializeNewActor(FArchive &Ar, class UActorChannel *Channel, class AActor *&Actor)
Definition CoreNet.h:207
virtual COREUOBJECT_API ~UPackageMap()
virtual void AddUnmappedNetGUIDReference(FNetworkGUID UnmappedGUID)
Definition CoreNet.h:226
virtual void ReportSyncLoadsForProperty(const FProperty *Property, const UObject *Object)
Definition CoreNet.h:231
virtual bool WriteObject(FArchive &Ar, UObject *InOuter, FNetworkGUID NetGUID, FString ObjName)
Definition CoreNet.h:195
FString DebugContextString
Definition CoreNet.h:253
bool bShouldTrackUnmappedGuids
Definition CoreNet.h:249
TSet< FNetworkGUID > TrackedUnmappedNetGuids
Definition CoreNet.h:250
virtual void LogDebugInfo(FOutputDevice &Ar)
Definition CoreNet.h:233
TSet< FNetworkGUID > TrackedMappedDynamicNetGuids
Definition CoreNet.h:251
virtual void ResetTrackedSyncLoadedGuids()
Definition CoreNet.h:230
virtual UObject * ResolvePathAndAssignNetGUID(const FNetworkGUID &NetGUID, const FString &PathName)
Definition CoreNet.h:205
virtual bool IsUsingRemoteObjectReferences() const
Definition CoreNet.h:237
virtual FNetworkGUID GetNetGUIDFromObject(const UObject *InObject) const
Definition CoreNet.h:235
COREUOBJECT_API UPackageMap()
virtual bool IsGUIDBroken(const FNetworkGUID &NetGUID, const bool bMustBeRegistered) const
Definition CoreNet.h:236
const TSet< FNetworkGUID > & GetTrackedUnmappedGuids() const
Definition CoreNet.h:223
void ClearDebugContextString()
Definition CoreNet.h:220
virtual void NotifyBunchCommit(const int32 OutPacketId, const FOutBunch *OutBunch)
Definition CoreNet.h:211
virtual UObject * GetObjectFromNetGUID(const FNetworkGUID &NetGUID, const bool bIgnoreMustBeMapped)
Definition CoreNet.h:234
void SetDebugContextString(const FString &Str)
Definition CoreNet.h:219
virtual void GetNetGUIDStats(int32 &AckCount, int32 &UnAckCount, int32 &PendingCount)
Definition CoreNet.h:213
void ResetTrackedGuids(bool bShouldTrack)
Definition CoreNet.h:222
virtual void RemoveUnmappedNetGUIDReference(FNetworkGUID UnmappedGUID)
Definition CoreNet.h:227
virtual bool SerializeObject(FArchive &Ar, UClass *InClass, UObject *&Obj, FNetworkGUID *OutNetGUID=NULL)
Definition CoreNet.h:198
virtual const UE::Net::FNetTokenResolveContext * GetNetTokenResolveContext() const
Definition CoreNet.h:242
virtual void NotifyStreamingLevelUnload(UObject *UnloadedLevel)
Definition CoreNet.h:215
virtual void ReceivedNak(const int32 NakPacketId)
Definition CoreNet.h:209
virtual void ReceivedAck(const int32 AckPacketId)
Definition CoreNet.h:210
Definition Class.h:480
Definition FieldSystemNoiseAlgo.cpp:6
Definition OverriddenPropertySet.cpp:45
Definition NetworkVersion.cpp:28
FReplicationFragment *(* CreateAndRegisterReplicationFragmentFunc)(UObject *Owner, const FReplicationStateDescriptor *Descriptor, FFragmentRegistrationContext &Context)
Definition CoreNet.h:55
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition BitReader.h:25
Definition BitWriter.h:22
Definition CoreNet.h:739
FString Identifier
Definition CoreNet.h:745
TArray< uint8 > Fingerprint
Definition CoreNet.h:743
TArray< uint8 > Key
Definition CoreNet.h:741
Definition FastArraySerializer.h:1627
Definition CoreNet.h:643
class UStruct * Struct
Definition CoreNet.h:666
bool bCalledPreNetReceive
Definition CoreNet.h:678
TSet< FNetworkGUID > * GatherGuidReferences
Definition CoreNet.h:720
int32 * TrackedGuidMemoryBytes
Definition CoreNet.h:727
FBitWriter * Writer
Definition CoreNet.h:645
bool bSupportsFastArrayDeltaStructSerialization
Definition CoreNet.h:696
const FNetworkGUID * MoveGuidToUnmapped
Definition CoreNet.h:730
UObject * Object
Definition CoreNet.h:710
class UNetConnection * Connection
Definition CoreNet.h:660
bool bOutSomeObjectsWereMapped
Definition CoreNet.h:675
UObject * CustomDeltaObject
Definition CoreNet.h:713
bool bGuidListsChanged
Definition CoreNet.h:684
void * Data
Definition CoreNet.h:663
uint16 CustomDeltaIndex
Definition CoreNet.h:732
bool bIsWritingOnClient
Definition CoreNet.h:687
FBitReader * Reader
Definition CoreNet.h:648
class UPackageMap * Map
Definition CoreNet.h:657
bool bOutHasMoreUnmapped
Definition CoreNet.h:681
bool bInternalAck
Definition CoreNet.h:707
bool bIsInitializingBaseFromDefault
Definition CoreNet.h:693
bool bUpdateUnmappedObjects
Definition CoreNet.h:672
INetSerializeCB * NetSerializeCB
Definition CoreNet.h:669
INetDeltaBaseState * OldState
Definition CoreNet.h:654
TSharedPtr< INetDeltaBaseState > * NewState
Definition CoreNet.h:651
FString DebugName
Definition CoreNet.h:735
Definition ObjectPtr.h:55
Definition CoreNet.h:259
FPacketIdRange(int32 _First, int32 _Last)
Definition CoreNet.h:260
int32 First
Definition CoreNet.h:263
int32 Last
Definition CoreNet.h:264
FPacketIdRange(int32 PacketId)
Definition CoreNet.h:261
bool InRange(int32 PacketId) const
Definition CoreNet.h:266
FPacketIdRange()
Definition CoreNet.h:262
Definition CoreNet.h:275
TSharedPtr< class INetDeltaBaseState > DynamicState
Definition CoreNet.h:278
uint32 FastArrayChangelistHistory
Definition CoreNet.h:281
FPropertyRetirement * Next
Definition CoreNet.h:276
FPropertyRetirement()
Definition CoreNet.h:283
void CountBytes(FArchive &Ar) const
Definition CoreNet.cpp:400
FPacketIdRange OutPacketIdRange
Definition CoreNet.h:280
Definition SoftObjectPath.h:56
Definition SoftObjectPtr.h:45
Definition WeakObjectPtr.h:49
Definition UnrealTypeTraits.h:172
Definition PimplPtr.h:50
Definition ReplicationStateDescriptor.h:199