UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PackageMapClient.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3
21#pragma once
22
23#include "CoreMinimal.h"
26#include "Misc/NetworkGuid.h"
27#include "Misc/NetworkVersion.h"
28#include "UObject/CoreNet.h"
30#include "Net/DataBunch.h"
34
35#include "PackageMapClient.generated.h"
36
38
39class UNetConnection;
40class UNetDriver;
42
44{
45public:
46 FNetFieldExport() : Blob ( {} ), Handle( 0 ), CompatibleChecksum( 0 ), bExported( false ), bDirtyForReplay( true ), bExportBlob( false ), bIncompatible( false )
47 {
48 }
49
51 Blob ( {} ),
54 ExportName( InName ),
55 bExported( false ),
56 bDirtyForReplay( true ),
57 bExportBlob( false ),
58 bIncompatible( false )
59 {
60 }
61
73
75
76 ENGINE_API void CountBytes(FArchive& Ar) const;
77
85
86
87 // Transient properties
88 mutable bool bIncompatible; // If true, we've already determined that this property isn't compatible. We use this to curb warning spam.
89};
90
92{
93public:
95
96 FString PathName;
100
102
104 {
105 for (int32 i = 0; i < NetFieldExports.Num(); i++)
106 {
107 if (NetFieldExports[i].CompatibleChecksum == Checksum)
108 {
109 return i;
110 }
111 }
112
113 return INDEX_NONE;
114 }
115
116 ENGINE_API void CountBytes(FArchive& Ar) const;
117};
118
121{
122public:
126
128
129 // These fields are set when this guid is static
132 uint32 NetworkChecksum; // Network checksum saved, used to determine backwards compatible
133
134 double ReadOnlyTimestamp; // Time in second when we should start timing out after going read only
135
136 uint8 bNoLoad : 1; // Don't load this, only do a find
137 uint8 bIgnoreWhenMissing : 1; // Don't warn when this asset can't be found or loaded
138 uint8 bIsPending : 1; // This object is waiting to be fully loaded
139 uint8 bIsBroken : 1; // If this object failed to load, then we set this to signify that we should stop trying
140 uint8 bDirtyForReplay : 1; // If this object has been modified, used by replay checkpoints
141};
142
144{
145 None = 0,
146 ForceExportDirtyGroups = (1 << 0),
147};
148
150
151
154{
155private:
156
157 friend class FNetGUIDCache;
158
160 NetGUID(InNetGUID),
161 Object(InObject)
162 {
163 }
164
165 FNetworkGUID NetGUID;
167};
168
169namespace UE::Net::Private
170{
172 class FRefCountedNetGUIDArray
173 {
174 public:
175 FRefCountedNetGUIDArray() {}
176 FRefCountedNetGUIDArray(const FRefCountedNetGUIDArray&) = delete;
177 FRefCountedNetGUIDArray& operator=(const FRefCountedNetGUIDArray&) = delete;
178
179 FRefCountedNetGUIDArray(FRefCountedNetGUIDArray&& Other) = default;
180 FRefCountedNetGUIDArray& operator=(FRefCountedNetGUIDArray&& Other) = default;
181 ~FRefCountedNetGUIDArray() = default;
182
183 void Add(FNetworkGUID NetGUID);
184 void RemoveSwap(FNetworkGUID NetGUID);
185
186 const TArray<FNetworkGUID>& GetNetGUIDs() const { return NetGUIDs; }
187
188 private:
189 TArray<FNetworkGUID> NetGUIDs;
190 TArray<int32> RefCounts;
191 };
192}
193
195{
196public:
198 virtual ~FNetGUIDCache() {};
199
202 FNetGUIDCache(const FNetGUIDCache&) = delete;
206
208 {
209 None = 0, // Don't use checksums
210 SaveAndUse = 1, // Save checksums in stream, and use to validate while loading packages
211 SaveButIgnore = 2, // Save checksums in stream, but ignore when loading packages
212 };
213
215 {
216 UseCVar = 0, // Use CVar (net.AllowAsyncLoading) to determine if we should async load
217 ForceDisable = 1, // Disable async loading
218 ForceEnable = 2, // Force enable async loading
219 };
220
224 ENGINE_API virtual bool IsNetGUIDAuthority() const;
227 ENGINE_API FNetworkGUID GetOuterNetGUID( const FNetworkGUID& NetGUID ) const;
229 ENGINE_API virtual FNetworkGUID AssignNewNetGUIDFromPath_Server( const FString& PathName, UObject* ObjOuter, UClass* ObjClass );
230 ENGINE_API void RegisterNetGUID_Internal( const FNetworkGUID& NetGUID, const FNetGuidCacheObject& CacheObject );
232 ENGINE_API void RegisterNetGUID_Client( const FNetworkGUID& NetGUID, const UObject* Object );
233 ENGINE_API void RegisterNetGUIDFromPath_Client( const FNetworkGUID& NetGUID, const FString& PathName, const FNetworkGUID& OuterGUID, const uint32 NetworkChecksum, const bool bNoLoad, const bool bIgnoreWhenMissing );
234 ENGINE_API void RegisterNetGUIDFromPath_Server( const FNetworkGUID& NetGUID, const FString& PathName, const FNetworkGUID& OuterGUID, const uint32 NetworkChecksum, const bool bNoLoad, const bool bIgnoreWhenMissing );
236 ENGINE_API bool ShouldIgnoreWhenMissing( const FNetworkGUID& NetGUID ) const;
237 ENGINE_API FNetGuidCacheObject const * const GetCacheObject(const FNetworkGUID& NetGUID) const;
238 ENGINE_API bool IsGUIDRegistered( const FNetworkGUID& NetGUID ) const;
239 ENGINE_API bool IsGUIDLoaded( const FNetworkGUID& NetGUID ) const;
240 ENGINE_API bool IsGUIDBroken( const FNetworkGUID& NetGUID, const bool bMustBeRegistered ) const;
241 ENGINE_API bool IsGUIDNoLoad( const FNetworkGUID& NetGUID ) const;
242 ENGINE_API bool IsGUIDPending( const FNetworkGUID& NetGUID ) const;
243 ENGINE_API FString FullNetGUIDPath( const FNetworkGUID& NetGUID ) const;
244 ENGINE_API void GenerateFullNetGUIDPath_r( const FNetworkGUID& NetGUID, FString& FullPath ) const;
249 ENGINE_API bool ShouldAsyncLoad() const;
250 ENGINE_API bool CanClientLoadObject( const UObject* Object, const FNetworkGUID& NetGUID ) const;
251 ENGINE_API FString Describe(const FNetworkGUID& NetGUID) const;
252
254
257
259
261
262 ENGINE_API void CountBytes(FArchive& Ar) const;
263
267
270
271 bool WasGUIDSyncLoaded(FNetworkGUID NetGUID) const { return SyncLoadedGUIDs.Contains(NetGUID); }
272 void ClearSyncLoadedGUID(FNetworkGUID NetGUID) { SyncLoadedGUIDs.Remove(NetGUID); }
273
279
281
283 const void RemoveUnmappedStablyNamedGuidsWithOuter(FNetworkGUID OuterGUID) { UnmappedStablyNamedGuids_OuterToInner.Remove(OuterGUID); }
284
287
288 UE_DEPRECATED(5.3, "No longer used")
290
293
295
298
300
301#if UE_WITH_REMOTE_OBJECT_HANDLE
304#endif
305
306private:
307
308 friend class UPackageMapClient;
309
310 uint64 NetworkGuidIndex[2];
311
312 TMap<FName, FNetworkGUID> PendingAsyncPackages;
313
316
318 TMap < FString, uint32 > NetFieldExportGroupPathToIndex;
319
321 TMap < uint32, FNetFieldExportGroup* > NetFieldExportGroupIndexToGroup;
322
324 int32 UniqueNetFieldExportGroupPathIndex;
325
327 TArray<FNetworkGUID> SyncLoadedGUIDs;
328
329#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
330public:
331
332 static ENGINE_API const bool IsHistoryEnabled();
333
334 // History for debugging entries in the guid cache
336private:
337#endif
338
339 struct FPendingAsyncLoadRequest
340 {
341 FPendingAsyncLoadRequest(const FNetworkGUID InNetGUID, const double InRequestStartTime):
342 RequestStartTime(InRequestStartTime)
343 {
344 NetGUIDs.Add(InNetGUID);
345 }
346
347 void Merge(const FPendingAsyncLoadRequest& Other)
348 {
349 for (FNetworkGUID OtherGUID : Other.NetGUIDs)
350 {
351 NetGUIDs.AddUnique(OtherGUID);
352 }
353
354#if CSV_PROFILER_STATS
355 bWasRequestedByOwnerOrPawn |= Other.bWasRequestedByOwnerOrPawn;
356#endif
357 }
358
360 {
361 NetGUIDs.AddUnique(InNetGUID);
362 }
363
364 // Net GUIDs that requested loading for the same UPackage
366
367 double RequestStartTime;
368
369#if CSV_PROFILER_STATS
370 bool bWasRequestedByOwnerOrPawn = false;
371#endif
372 };
373
375 TMap<FName, FPendingAsyncLoadRequest> PendingAsyncLoadRequests;
376
377 FNetAsyncLoadDelinquencyAnalytics DelinquentAsyncLoads;
378
379 ENGINE_API void StartAsyncLoadingPackage(FNetGuidCacheObject& Object, const FNetworkGUID ObjectGUID, const bool bWasAlreadyAsyncLoading);
380 ENGINE_API void ValidateAsyncLoadingPackage(FNetGuidCacheObject& Object, const FNetworkGUID ObjectGUID);
381
382 ENGINE_API void UpdateQueuedBunchObjectReference(const FNetworkGUID NetGUID, UObject* NewObject);
383
391
396 TMap<FNetworkGUID, UE::Net::Private::FRefCountedNetGUIDArray> UnmappedStablyNamedGuids_OuterToInner;
397
398#if CSV_PROFILER_STATS
399public:
400
402
404 {
405 private:
406 friend class UActorChannel;
407
409 class FNetGUIDCache* const InGuidCache,
410 const class AActor* InConnectionActor,
411 const class AActor* ChannelActor);
412
413 public:
414
416
417 bool IsOwnerOrPawn() const;
418
419 private:
420
421 class FNetGUIDCache* const GuidCache;
422 const class AActor* ConnectionActor;
423 const class AActor* ChannelActor;
424 mutable int8 CachedResult = INDEX_NONE;
425
426 // No copying, moving, or constructing off stack.
427 // References or pointers to this class should never be kept alive.
430
431 FIsOwnerOrPawnHelper& operator=(const FIsOwnerOrPawnHelper&) = delete;
432 FIsOwnerOrPawnHelper& operator=(FIsOwnerOrPawnHelper&&) = delete;
433
434 void* operator new (size_t) = delete;
435 void* operator new[](size_t) = delete;
436 void operator delete (void *) = delete;
437 void operator delete[](void*) = delete;
438 };
439
440private:
441
443#endif
444};
445
447{
448public:
449 TMap< FNetworkGUID, int32 > NetGUIDAckStatus; // Map that represents the ack state of each net guid for this connection
450 TSet< uint32 > NetFieldExportGroupPathAcked; // Map that represents whether or not a net field export group has been ack'd by the client
451 TSet< uint64 > NetFieldExportAcked; // Map that represents whether or not a net field export has been ack'd by the client
452
453 void Reset()
454 {
455 NetGUIDAckStatus.Empty();
457 NetFieldExportAcked.Empty();
458 }
459
460 ENGINE_API void CountBytes(FArchive& Ar) const;
461};
462
463UCLASS(transient, MinimalAPI)
465{
466public:
468
470
472
474 {
475 if (CurrentExportBunch)
476 {
477 delete CurrentExportBunch;
478 CurrentExportBunch = NULL;
479 }
480 }
481
482 // UPackageMap Interface
483 ENGINE_API virtual bool SerializeObject( FArchive& Ar, UClass* InClass, UObject*& Obj, FNetworkGUID *OutNetGUID = NULL ) override;
484 ENGINE_API virtual bool SerializeNewActor( FArchive& Ar, class UActorChannel *Channel, class AActor*& Actor) override;
485
486 ENGINE_API virtual bool WriteObject( FArchive& Ar, UObject* InOuter, FNetworkGUID NetGUID, FString ObjName ) override;
487 ENGINE_API virtual bool IsUsingRemoteObjectReferences() const override;
488
489 // UPackageMapClient Connection specific methods
490
491 ENGINE_API bool NetGUIDHasBeenAckd(FNetworkGUID NetGUID);
492
493 ENGINE_API virtual void ReceivedNak( const int32 NakPacketId ) override;
494 ENGINE_API virtual void ReceivedAck( const int32 AckPacketId ) override;
495 ENGINE_API virtual void NotifyBunchCommit( const int32 OutPacketId, const FOutBunch* OutBunch ) override;
496 ENGINE_API virtual void GetNetGUIDStats(int32 &AckCount, int32 &UnAckCount, int32 &PendingCount) override;
497 virtual const UE::Net::FNetTokenResolveContext* GetNetTokenResolveContext() const override { return &NetTokenResolveContext; }
498
499 ENGINE_API void ReceiveNetGUIDBunch( FInBunch &InBunch );
500
501 UE_DEPRECATED(5.5, "Use GetAdditionalRequiredBunches")
502 ENGINE_API void AppendExportBunches(TArray<FOutBunch *>& OutgoingBunches);
503
506
507 ENGINE_API int32 GetNumExportBunches() const;
508
509 ENGINE_API void AppendExportData(FArchive& Archive);
510 ENGINE_API void ReceiveExportData(FArchive& Archive);
511
512 TMap<FNetworkGUID, int32> NetGUIDExportCountMap; // How many times we've exported each NetGUID on this connection. Public for ListNetGUIDExports
513
514 ENGINE_API void HandleUnAssignedObject( UObject* Obj );
515
516 static ENGINE_API void AddReferencedObjects(UObject* InThis, FReferenceCollector& Collector);
517
518 ENGINE_API virtual void NotifyStreamingLevelUnload(UObject* UnloadedLevel) override;
519
520 ENGINE_API virtual bool PrintExportBatch() override;
521
522 virtual void ResetTrackedSyncLoadedGuids() override { TrackedSyncLoadedGUIDs.Reset(); }
523 ENGINE_API virtual void ReportSyncLoadsForProperty(const FProperty* Property, const UObject* Object) override;
524
525 ENGINE_API virtual void LogDebugInfo( FOutputDevice & Ar) override;
526 ENGINE_API virtual UObject * GetObjectFromNetGUID( const FNetworkGUID& NetGUID, const bool bIgnoreMustBeMapped ) override;
527 ENGINE_API virtual FNetworkGUID GetNetGUIDFromObject( const UObject* InObject) const override;
528 virtual bool IsGUIDBroken( const FNetworkGUID& NetGUID, const bool bMustBeRegistered ) const override { return GuidCache->IsGUIDBroken( NetGUID, bMustBeRegistered ); }
529
531 ENGINE_API virtual bool IsGUIDPending( const FNetworkGUID& NetGUID ) const;
532
534 ENGINE_API virtual void SetHasQueuedBunches( const FNetworkGUID& NetGUID, bool bHasQueuedBunches );
535
536 TArray< FNetworkGUID > & GetMustBeMappedGuidsInLastBunch() { return MustBeMappedGuidsInLastBunch; }
537
538 class UNetConnection* GetConnection() { return Connection; }
539
540 ENGINE_API void SyncPackageMapExportAckStatus( const UPackageMapClient* Source );
541
542 ENGINE_API void SavePackageMapExportAckStatus( FPackageMapAckState& OutState );
543 ENGINE_API void RestorePackageMapExportAckStatus( const FPackageMapAckState& InState );
544 ENGINE_API void OverridePackageMapExportAckStatus( FPackageMapAckState* NewState );
545
547 ENGINE_API void ResetAckState();
548
550 ENGINE_API TSharedPtr< FNetFieldExportGroup > GetNetFieldExportGroup( const FString& PathName );
551 ENGINE_API void AddNetFieldExportGroup( const FString& PathName, TSharedPtr< FNetFieldExportGroup > NewNetFieldExportGroup );
553 ENGINE_API TSharedPtr< FNetFieldExportGroup > GetNetFieldExportGroupChecked( const FString& PathName ) const;
554 ENGINE_API void SerializeNetFieldExportGroupMap( FArchive& Ar, bool bClearPendingExports=true );
555 ENGINE_API void SerializeNetFieldExportDelta(FArchive& Ar);
556
558 ENGINE_API FOutBunch* CreateCustomExportsBunch(const FOutBunch& OutgoingBunch);
559
561 void ReceiveCustomExportsBunch(FInBunch& InBunch);
562
563public:
565 {
566 return MakeUnique<TGuardValue<bool>>(bIgnoreReceivedExportGUIDs, true);
567 }
568
569 ENGINE_API virtual void Serialize(FArchive& Ar) override;
570
571 FString GetFullNetGUIDPath(const FNetworkGUID& NetGUID) const
572 {
573 FString FullGuidCachePath;
574
575 if (const FNetGUIDCache * const GuidCacheLocal = GuidCache.Get())
576 {
577 FullGuidCachePath = GuidCacheLocal->FullNetGUIDPath(NetGUID);
578 }
579
580 return FullGuidCachePath;
581 }
582
583 ENGINE_API virtual void AddUnmappedNetGUIDReference(FNetworkGUID UnmappedGUID) override;
584 ENGINE_API virtual void RemoveUnmappedNetGUIDReference(FNetworkGUID MappedGUID) override;
585 ENGINE_API bool IsNetGUIDAuthority() const;
586
587protected:
588
590 ENGINE_API void AppendNetFieldExports( FArchive& Archive );
591 ENGINE_API void ReceiveNetFieldExports( FArchive& Archive );
592
593 ENGINE_API void AppendNetFieldExportsInternal( FArchive& Archive, const TSet<uint64>& InNetFieldExports, EAppendNetExportFlags Flags );
594
595 ENGINE_API void AppendNetExportGUIDs( FArchive& Archive );
596 ENGINE_API void ReceiveNetExportGUIDs( FArchive& Archive );
597
598 ENGINE_API bool ExportNetGUIDForReplay( FNetworkGUID&, UObject* Object, FString& PathName, UObject* ObjOuter );
599 ENGINE_API bool ExportNetGUID( FNetworkGUID NetGUID, UObject* Object, FString PathName, UObject* ObjOuter );
600 ENGINE_API void ExportNetGUIDHeader();
601
602 ENGINE_API void InternalWriteObject( FArchive& Ar, FNetworkGUID NetGUID, UObject* Object, FString ObjectPathName, UObject* ObjectOuter );
604
605 ENGINE_API virtual UObject* ResolvePathAndAssignNetGUID( const FNetworkGUID& NetGUID, const FString& PathName ) override;
606
607 ENGINE_API bool ShouldSendFullPath(const UObject* Object, const FNetworkGUID &NetGUID);
608
610
611 ENGINE_API bool ObjectLevelHasFinishedLoading(UObject* Obj) const;
612
614 TSet< FNetworkGUID > CurrentExportNetGUIDs; // Current list of NetGUIDs being written to the Export Bunch.
615
618
619 TArray< FNetworkGUID > PendingAckGUIDs; // Quick access to all GUID's that haven't been acked
620
621 FPackageMapAckState AckState; // Current ack state of exported data
622 FPackageMapAckState* OverrideAckState; // This is a pointer that allows us to override the current ack state, it's never NULL (it will point to AckState by default)
623
624 // Bunches of NetGUID/path tables to send with the current content bunch
627
629
631
633
636
637private:
638 ENGINE_API void ReceiveNetFieldExportsCompat(FInBunch& InBunch);
639
641 ENGINE_API void ReportSyncLoadsForActorSpawn(const AActor* Actor);
642
643 bool bIgnoreReceivedExportGUIDs;
644
645public:
646
647 ENGINE_API int32 GetNumQueuedBunchNetGUIDs() const;
651
652private:
653
654 FNetQueuedActorDelinquencyAnalytics DelinquentQueuedActors;
655
660 TArray<FNetworkGUID> TrackedSyncLoadedGUIDs;
661
662 // Stored information required to resolve NetTokens
663 UE::Net::FNetTokenResolveContext NetTokenResolveContext;
664
666 TSet<UE::Net::FNetToken> AcknowledgedExportedNetTokens;
667
669 TMultiMap<int32, UE::Net::FNetToken> NetTokenPendingAckMap;
670};
#define NULL
Definition oodle2base.h:134
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
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
EChannelGetAdditionalRequiredBunchesFlags
Definition Channel.h:48
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
return true
Definition ExternalRpcRegistry.cpp:601
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
#define LLM_DECLARE_TAG_API(...)
Definition LowLevelMemTracker.h:1117
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
EAppendNetExportFlags
Definition PackageMapClient.h:144
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition Archive.h:1208
Definition DataBunch.h:127
Definition NameTypes.h:617
Definition PackageMapClient.h:92
bool bDirtyForReplay
Definition PackageMapClient.h:99
friend FArchive & operator<<(FArchive &Ar, FNetFieldExportGroup &C)
Definition PackageMapClient.cpp:4469
FNetFieldExportGroup()
Definition PackageMapClient.h:94
ENGINE_API void CountBytes(FArchive &Ar) const
Definition PackageMapClient.cpp:4459
uint32 PathNameIndex
Definition PackageMapClient.h:97
TArray< FNetFieldExport > NetFieldExports
Definition PackageMapClient.h:98
int32 FindNetFieldExportHandleByChecksum(const uint32 Checksum) const
Definition PackageMapClient.h:103
FString PathName
Definition PackageMapClient.h:96
Definition PackageMapClient.h:44
uint32 Handle
Definition PackageMapClient.h:79
FName ExportName
Definition PackageMapClient.h:81
FNetFieldExport()
Definition PackageMapClient.h:46
bool bDirtyForReplay
Definition PackageMapClient.h:83
friend FArchive & operator<<(FArchive &Ar, FNetFieldExport &C)
Definition PackageMapClient.cpp:4411
uint32 CompatibleChecksum
Definition PackageMapClient.h:80
ENGINE_API void CountBytes(FArchive &Ar) const
Definition PackageMapClient.cpp:4406
bool bIncompatible
Definition PackageMapClient.h:88
FNetFieldExport(const uint32 InHandle, const uint32 InCompatibleChecksum, const FName &InName)
Definition PackageMapClient.h:50
TArray< uint8 > Blob
Definition PackageMapClient.h:78
FNetFieldExport(const uint32 InHandle, const uint32 InCompatibleChecksum, const FName &InName, const TArray< uint8 > &InBlob)
Definition PackageMapClient.h:62
bool bExported
Definition PackageMapClient.h:82
bool bExportBlob
Definition PackageMapClient.h:84
Definition PackageMapClient.h:195
virtual ~FNetGUIDCache()
Definition PackageMapClient.h:198
TSet< FNetworkGUID > ImportedNetGuids
Definition PackageMapClient.h:291
ENGINE_API uint32 GetClassNetworkChecksum(UClass *Class)
Definition PackageMapClient.cpp:4272
bool WasGUIDSyncLoaded(FNetworkGUID NetGUID) const
Definition PackageMapClient.h:271
ENGINE_API void ResetAsyncLoadDelinquencyAnalytics()
Definition PackageMapClient.cpp:4521
ENGINE_API TSharedRef< FQueuedBunchObjectReference > TrackQueuedBunchObjectReference(const FNetworkGUID InNetGUID, UObject *InObject)
Definition PackageMapClient.cpp:4573
ENGINE_API void SetNetworkChecksumMode(const ENetworkChecksumMode NewMode)
Definition PackageMapClient.cpp:4290
ENGINE_API void RemoveActorNetGUIDs(const AActor *Actor)
Definition PackageMapClient.cpp:4197
ENGINE_API void CollectReferences(class FReferenceCollector &ReferenceCollector)
Definition PackageMapClient.cpp:4542
TMap< FNetworkGUID, FString > History
Definition PackageMapClient.h:335
ENGINE_API void ConsumeAsyncLoadDelinquencyAnalytics(FNetAsyncLoadDelinquencyAnalytics &Out)
Definition PackageMapClient.cpp:4510
ENGINE_API void RegisterNetGUIDFromPath_Server(const FNetworkGUID &NetGUID, const FString &PathName, const FNetworkGUID &OuterGUID, const uint32 NetworkChecksum, const bool bNoLoad, const bool bIgnoreWhenMissing)
Definition PackageMapClient.cpp:3535
ENGINE_API void ReportSyncLoadedGUIDs()
Definition PackageMapClient.cpp:4602
UNetDriver * Driver
Definition PackageMapClient.h:294
FNetGUIDCache & operator=(const FNetGUIDCache &)=delete
ENGINE_API bool ShouldIgnoreWhenMissing(const FNetworkGUID &NetGUID) const
Definition PackageMapClient.cpp:4029
ENGINE_API void ResetCacheForDemo()
Definition PackageMapClient.cpp:4311
virtual ENGINE_API FNetworkGUID AssignNewNetGUIDFromPath_Server(const FString &PathName, UObject *ObjOuter, UClass *ObjClass)
Definition PackageMapClient.cpp:3304
virtual ENGINE_API FNetworkGUID AssignNewNetGUID_Server(UObject *Object)
Definition PackageMapClient.cpp:3277
TMap< FNetworkGUID, TSet< FNetworkGUID > > PendingOuterNetGuids
Definition PackageMapClient.h:292
ENGINE_API void RegisterNetGUID_Internal(const FNetworkGUID &NetGUID, const FNetGuidCacheObject &CacheObject)
Definition PackageMapClient.cpp:3334
ENGINE_API void CountBytes(FArchive &Ar) const
Definition PackageMapClient.cpp:4335
ENGINE_API bool IsGUIDLoaded(const FNetworkGUID &NetGUID) const
Definition PackageMapClient.cpp:4105
ENGINE_API bool CanClientLoadObject(const UObject *Object, const FNetworkGUID &NetGUID) const
Definition PackageMapClient.cpp:854
const void RemoveUnmappedStablyNamedGuidsWithOuter(FNetworkGUID OuterGUID)
Definition PackageMapClient.h:283
ENGINE_API void GenerateFullNetGUIDPath_r(const FNetworkGUID &NetGUID, FString &FullPath) const
Definition PackageMapClient.cpp:4222
ENGINE_API bool SupportsObject(const UObject *Object, const TWeakObjectPtr< UObject > *WeakObjectPtr=nullptr) const
Definition PackageMapClient.cpp:3118
bool IsExportingNetGUIDBunch
Definition PackageMapClient.h:299
FNetGUIDCache(const FNetGUIDCache &)=delete
TMap< FNetworkGUID, FNetGuidCacheObject > ObjectLookup
Definition PackageMapClient.h:285
virtual ENGINE_API bool IsNetGUIDAuthority() const
Definition PackageMapClient.cpp:3193
ENGINE_API FNetworkGUID GetOrAssignNetGUID(UObject *Object, const TWeakObjectPtr< UObject > *WeakObjectPtr=nullptr)
Definition PackageMapClient.cpp:3199
static ENGINE_API const bool IsHistoryEnabled()
Definition PackageMapClient.cpp:4329
ENGINE_API bool IsGUIDNoLoad(const FNetworkGUID &NetGUID) const
Definition PackageMapClient.cpp:4131
ENGINE_API const FNetAsyncLoadDelinquencyAnalytics & GetAsyncLoadDelinquencyAnalytics() const
Definition PackageMapClient.cpp:4516
ENGINE_API void AsyncPackageCallback(const FName &PackageName, UPackage *Package, EAsyncLoadingResult::Type Result)
Definition PackageMapClient.cpp:3659
ENGINE_API void SetAsyncLoadMode(const EAsyncLoadMode NewMode)
Definition PackageMapClient.cpp:4295
ENGINE_API void ResetReplayDirtyTracking()
Definition PackageMapClient.cpp:4712
ENGINE_API const TArray< FNetworkGUID > * FindUnmappedStablyNamedGuidsWithOuter(FNetworkGUID OuterGUID) const
Definition PackageMapClient.cpp:2916
ENGINE_API FNetworkGUID GetOuterNetGUID(const FNetworkGUID &NetGUID) const
Definition PackageMapClient.cpp:4143
ENGINE_API uint32 GetNetworkChecksum(UObject *Obj)
Definition PackageMapClient.cpp:4277
EAsyncLoadMode
Definition PackageMapClient.h:215
TMap< TWeakObjectPtr< UObject >, FNetworkGUID > NetGUIDLookup
Definition PackageMapClient.h:286
ENetworkChecksumMode
Definition PackageMapClient.h:208
ENGINE_API bool IsGUIDRegistered(const FNetworkGUID &NetGUID) const
Definition PackageMapClient.cpp:4085
FNetGUIDCache & operator=(FNetGUIDCache &&)=default
ENGINE_API bool ShouldAsyncLoad() const
Definition PackageMapClient.cpp:4300
ENGINE_API void CleanReferences()
Definition PackageMapClient.cpp:3022
ENGINE_API bool IsGUIDBroken(const FNetworkGUID &NetGUID, const bool bMustBeRegistered) const
Definition PackageMapClient.cpp:4111
ENGINE_API void RegisterNetGUID_Client(const FNetworkGUID &NetGUID, const UObject *Object)
Definition PackageMapClient.cpp:3397
int32 UniqueNetIDs[2]
Definition PackageMapClient.h:289
EAsyncLoadMode AsyncLoadMode
Definition PackageMapClient.h:297
ENGINE_API FString FullNetGUIDPath(const FNetworkGUID &NetGUID) const
Definition PackageMapClient.cpp:4155
ENGINE_API UObject * GetObjectFromNetGUID(const FNetworkGUID &NetGUID, const bool bIgnoreMustBeMapped)
Definition PackageMapClient.cpp:3736
void ClearSyncLoadedGUID(FNetworkGUID NetGUID)
Definition PackageMapClient.h:272
ENGINE_API bool IsGUIDPending(const FNetworkGUID &NetGUID) const
Definition PackageMapClient.cpp:4137
ENGINE_API void RegisterNetGUID_Server(const FNetworkGUID &NetGUID, UObject *Object)
Definition PackageMapClient.cpp:3374
ENGINE_API void RegisterNetGUIDFromPath_Client(const FNetworkGUID &NetGUID, const FString &PathName, const FNetworkGUID &OuterGUID, const uint32 NetworkChecksum, const bool bNoLoad, const bool bIgnoreWhenMissing)
Definition PackageMapClient.cpp:3467
PRAGMA_DISABLE_DEPRECATION_WARNINGS FNetGUIDCache(FNetGUIDCache &&)=default
ENGINE_API bool IsDynamicObject(const UObject *Object)
Definition PackageMapClient.cpp:3184
ENGINE_API FNetworkGUID GetNetGUID(const UObject *Object) const
Definition PackageMapClient.cpp:3260
ENetworkChecksumMode NetworkChecksumMode
Definition PackageMapClient.h:296
ENGINE_API bool RemoveNetGUID(const UObject *Object)
Definition PackageMapClient.cpp:4180
ENGINE_API FNetGuidCacheObject const *const GetCacheObject(const FNetworkGUID &NetGUID) const
Definition PackageMapClient.cpp:4100
ENGINE_API FString Describe(const FNetworkGUID &NetGUID) const
Definition PackageMapClient.cpp:4164
Definition PackageMapClient.h:121
FNetGuidCacheObject()
Definition PackageMapClient.h:123
uint8 bNoLoad
Definition PackageMapClient.h:136
FNetworkGUID OuterGUID
Definition PackageMapClient.h:130
FName PathName
Definition PackageMapClient.h:131
uint8 bIgnoreWhenMissing
Definition PackageMapClient.h:137
TWeakObjectPtr< UObject > Object
Definition PackageMapClient.h:127
uint8 bIsPending
Definition PackageMapClient.h:138
double ReadOnlyTimestamp
Definition PackageMapClient.h:134
uint8 bIsBroken
Definition PackageMapClient.h:139
uint8 bDirtyForReplay
Definition PackageMapClient.h:140
uint32 NetworkChecksum
Definition PackageMapClient.h:132
Definition NetworkGuid.h:12
void Reset()
Definition NetworkGuid.h:90
Definition UObjectGlobals.h:1292
static COREUOBJECT_API FObjectInitializer & Get()
Definition UObjectGlobals.cpp:5001
Definition DataBunch.h:24
Definition OutputDevice.h:133
Definition PackageMapClient.h:447
TMap< FNetworkGUID, int32 > NetGUIDAckStatus
Definition PackageMapClient.h:449
TSet< uint64 > NetFieldExportAcked
Definition PackageMapClient.h:451
ENGINE_API void CountBytes(FArchive &Ar) const
Definition PackageMapClient.cpp:4498
TSet< uint32 > NetFieldExportGroupPathAcked
Definition PackageMapClient.h:450
void Reset()
Definition PackageMapClient.h:453
Definition UnrealType.h:174
Definition UObjectGlobals.h:2492
Definition Array.h:670
SizeType Remove(const ElementType &Item)
Definition Array.h:3091
UE_REWRITE SizeType Num() const
Definition Array.h:1144
bool Contains(const ComparisonType &Item) const
Definition Array.h:1518
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition UniquePtr.h:107
Definition ActorChannel.h:78
Definition Class.h:3793
Definition NetToken.h:112
Definition NetConnection.h:284
ENGINE_API void ConsumeQueuedActorDelinquencyAnalytics(FNetQueuedActorDelinquencyAnalytics &Out)
Definition NetConnection.cpp:5946
ENGINE_API void ResetQueuedActorDelinquencyAnalytics()
Definition NetConnection.cpp:5970
ENGINE_API const FNetQueuedActorDelinquencyAnalytics & GetQueuedActorDelinquencyAnalytics() const
Definition NetConnection.cpp:5958
Definition NetDriver.h:799
Definition Object.h:95
Definition PackageMapClient.h:465
int32 ExportNetGUIDCount
Definition PackageMapClient.h:628
FOutBunch * CurrentExportBunch
Definition PackageMapClient.h:626
TMap< FNetworkGUID, double > CurrentQueuedBunchNetGUIDs
Definition PackageMapClient.h:617
TArray< FNetworkGUID > MustBeMappedGuidsInLastBunch
Definition PackageMapClient.h:632
class UNetConnection * GetConnection()
Definition PackageMapClient.h:538
TUniquePtr< TGuardValue< bool > > ScopedIgnoreReceivedExportGUIDs()
Definition PackageMapClient.h:564
TArray< FNetworkGUID > & GetMustBeMappedGuidsInLastBunch()
Definition PackageMapClient.h:536
TSet< uint64 > NetFieldExports
Definition PackageMapClient.h:635
TSet< FNetworkGUID > CurrentExportNetGUIDs
Definition PackageMapClient.h:614
FPackageMapAckState * OverrideAckState
Definition PackageMapClient.h:622
virtual ~UPackageMapClient()
Definition PackageMapClient.h:473
TArray< FOutBunch * > ExportBunches
Definition PackageMapClient.h:625
class UNetConnection * Connection
Definition PackageMapClient.h:609
FString GetFullNetGUIDPath(const FNetworkGUID &NetGUID) const
Definition PackageMapClient.h:571
TSharedPtr< FNetGUIDCache > GuidCache
Definition PackageMapClient.h:630
FPackageMapAckState AckState
Definition PackageMapClient.h:621
virtual bool IsGUIDBroken(const FNetworkGUID &NetGUID, const bool bMustBeRegistered) const override
Definition PackageMapClient.h:528
TArray< FNetworkGUID > PendingAckGUIDs
Definition PackageMapClient.h:619
virtual const UE::Net::FNetTokenResolveContext * GetNetTokenResolveContext() const override
Definition PackageMapClient.h:497
TArray< TArray< uint8 > > ExportGUIDArchives
Definition PackageMapClient.h:613
Definition CoreNet.h:191
Definition Package.h:216
Type
Definition UObjectGlobals.h:694
Definition NetworkVersion.cpp:28
@ false
Definition radaudio_common.h:23
Definition NetAnalyticsTypes.h:133
Definition NetAnalyticsTypes.h:178
Definition PackageMapClient.h:154
Definition RemoteObjectTypes.h:212
Definition ObjectPtr.h:488