UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AssetRegistryImpl.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "AssetDataGatherer.h"
11#include "Containers/Map.h"
12#include "Containers/Set.h"
13#include "HAL/CriticalSection.h"
14#include "Math/NumericLimits.h"
15#include "Misc/Optional.h"
17#include "Misc/ScopeRWLock.h"
18#include "ModuleDescriptor.h"
20#include "Templates/Function.h"
21#include "Templates/UniquePtr.h"
22
23#include <atomic>
24
25// Disable premade asset registry until the target specifies it in UBT
26#ifdef ASSETREGISTRY_ENABLE_PREMADE_REGISTRY_IN_EDITOR
27#error "Please use ASSETREGISTRY_FORCE_PREMADE_REGISTRY_IN_EDITOR instead of ASSETREGISTRY_ENABLE_PREMADE_REGISTRY_IN_EDITOR"
28#endif
29
30#ifndef ASSETREGISTRY_FORCE_PREMADE_REGISTRY_IN_EDITOR
31#define ASSETREGISTRY_FORCE_PREMADE_REGISTRY_IN_EDITOR 0
32#endif
33
34class ITargetPlatform;
35class FDependsNode;
36struct FARFilter;
38struct FFileChangeData;
39class FPackageReader;
41namespace UE::AssetRegistry::Impl { struct FEventContext; }
42namespace UE::AssetRegistry::Premade { enum class ELoadResult : uint8; }
43namespace UE::AssetRegistry::Premade { struct FAsyncConsumer; }
44namespace UE::AssetRegistry::Impl { struct FInitializeContext; }
45namespace UE::AssetRegistry::Impl { struct FScanPathContext; }
46namespace UE::AssetRegistry::Impl { struct FTickContext; }
47namespace UE::AssetRegistry::Impl { struct FClassInheritanceContext; }
48namespace UE::AssetRegistry::Private { class FRWLockWithPriority; }
49namespace UE::AssetRegistry::Private { using FInterfaceRWLock = FRWLockWithPriority; }
50namespace UE::AssetRegistry::DependsNode { struct FGatherDependencyDataScratchpad; }
51namespace UE::AssetRegistry { template <typename TScopeLockType> class TRWScopeLockWithPriority; }
55
56#if WITH_EDITOR
57namespace UE::AssetDependencyGatherer::Private { class FRegisteredAssetDependencyGatherer; }
58#endif
59
60namespace UE::AssetRegistry
61{
62namespace Premade
63{
69{
72 void PrepareForConsume();
81
82private:
86 int32 ReferenceCount = 0;
88 FEvent* Consumed = nullptr;
89};
90} // namespace Premade within UE::AssetRegistry
91
92namespace Private
93{
99class FRWLockWithPriority
100{
101public:
102 FORCEINLINE void WriteLock()
103 {
104 Mutex.WriteLock();
105 }
106
107 FORCEINLINE void WriteUnlock()
108 {
109 Mutex.WriteUnlock();
110 }
111
112 FORCEINLINE void ReadLock()
113 {
114 Mutex.ReadLock();
115 }
116
117 FORCEINLINE void ReadUnlock()
118 {
119 Mutex.ReadUnlock();
120 }
121
122 bool HasWaiters() const
123 {
124 bool Result;
126 {
127 Result = HighPriorityWaitersCount.load(std::memory_order_relaxed) > 0;
128 };
129 return Result;
130 }
131
132private:
137 std::atomic<int32> HighPriorityWaitersCount;
138};
139
140enum ELockPriority : uint8
141{
142 PriorityLow,
143 PriorityHigh
144};
145} // namespace Private within namespace UE::AssetRegistry
146
151{
152public:
153 FScopedHighPriorityWaitTracker(std::atomic<int32>* InCounter, Private::ELockPriority InPriority)
154 : Counter((InPriority == Private::PriorityHigh) ? InCounter : nullptr)
155 {
156 if (Counter)
157 {
159 {
160 Counter->fetch_add(1, std::memory_order_relaxed);
161 };
162 AutoRTFM::PushOnAbortHandler(this, [this]
163 {
164 Counter->fetch_sub(1, std::memory_order_relaxed);
165 });
166 }
167 }
168
170 {
171 if (Counter)
172 {
174 {
175 Counter->fetch_sub(1, std::memory_order_relaxed);
176 };
177 AutoRTFM::PopOnAbortHandler(this);
178 }
179 }
180
181private:
182 std::atomic<int32>* Counter = nullptr;
183};
184
190template <typename TScopeLockType> class TRWScopeLockWithPriority
191{
192public:
193 UE_NODISCARD_CTOR explicit TRWScopeLockWithPriority(Private::FRWLockWithPriority& InLock,
194 Private::ELockPriority InPriority = Private::PriorityHigh)
195 : Lock(InLock)
197 {
198 FScopedHighPriorityWaitTracker Tracker(&Lock.HighPriorityWaitersCount, Priority);
200 }
201
203 UE::AssetRegistry::Private::FRWLockWithPriority& Lock;
204 UE::AssetRegistry::Private::ELockPriority Priority;
205};
206
208{
209public:
210 UE_NODISCARD_CTOR explicit FRWScopeLockWithPriority(Private::FRWLockWithPriority& InLockObject,
211 FRWScopeLockType InLockType, Private::ELockPriority InPriority = Private::PriorityHigh)
215 {
216 FScopedHighPriorityWaitTracker Tracker(&Lock.HighPriorityWaitersCount, Priority);
217 GuardWrapper.Emplace(Lock, LockType);
218 }
219
220 // NOTE: As the name suggests, this function should be used with caution.
221 // It releases the read lock _before_ acquiring a new write lock. This is not an atomic operation and the caller should
222 // not treat it as such.
223 // E.g. Pointers read from protected data structures prior to this call may be invalid after the function is called.
225 {
226 if (LockType == SLT_ReadOnly)
227 {
228 GuardWrapper.Reset();
229 {
230 FScopedHighPriorityWaitTracker Tracker(&Lock.HighPriorityWaitersCount, Priority);
231 GuardWrapper.Emplace(Lock, SLT_Write);
232 }
234 }
235 }
236
237 Private::FRWLockWithPriority& Lock;
239 Private::ELockPriority Priority;
241};
242
243namespace Impl
244{
264
275
278{
279 // Handling slow async load
281
282 // Not changing, optimize for runtime queries
284};
285
288{
289public:
291
294 : TickStartTime(InTickStartTime)
295 , MaxRunningTime(InMaxRunningTime)
296 {
297 }
298
300 : TickStartTime(InTickStartTime)
301 , MaxRunningTime(InMaxRunningTime)
302 , EarlyExitCallback(Callback) {}
303
305 {
306 EarlyExitCallback = InCallback;
307 }
309 {
310 TickStartTime = -1.;
311 MaxRunningTime = -1.;
312 }
314 {
315 TickStartTime = InTickStartTime;
316 MaxRunningTime = InMaxRunningTime;
317 }
318 double GetTickStartTime() const { return TickStartTime; }
319 bool IsTimeSlicingEnabled() const { return TickStartTime > 0; }
320 bool WasInterrupted() const { return OutInterrupted; }
321 bool ShouldExitEarly();
322 void RequestEarlyExit() { OutInterrupted = true; }
323
324private:
325 // A negative value disables time slicing
326 double TickStartTime = -1.;
327 // The maximum time should allow before interruption. If TickStartTime is negative, this is ignored
328 double MaxRunningTime = -1.;
329 // If provided, this is always checked
330 ShouldExitEarlyCallbackType EarlyExitCallback;
331 // True if we ran out of time, EarlyExitCallback returned true, or RequestEarlyExit() was called
332 bool OutInterrupted = false;
333};
334
337{
339 {
341 const UClass* ClassPtr = nullptr;
342 int32 InheritanceDepth = 0; // used as a sorting criteria to order classes from base to leaf.
343 bool bInclude = false;
344 };
347};
348
357} // namespace Impl within namespace UE::AssetRegistry
358
360enum class EDeferFlag
361{
372 BypassNow,
373};
374
375} // namespace UE::AssetRegistry
376
384
385namespace UE::AssetRegistry
386{
387
394{
395 using FAssetDataMap = UE::AssetRegistry::Private::FAssetDataMap;
397
398public:
403
405 IAssetRegistry::FAssetCollisionEvent& OnAssetCollision_Private();
406
407 // Helpers for functions of the same name from UAssetRegistryImpl
408
409
410 bool HasAssets(const FName PackagePath, const bool bRecursive) const;
425 void CompileFilter(Impl::FClassInheritanceContext& InheritanceContext, const FARFilter& InFilter,
427 void SetTemporaryCachingMode(bool bEnable);
430 void SearchAllAssets(Impl::FEventContext& EventContext, Impl::FClassInheritanceContext& InheritanceContext,
431 bool bSynchronousSearch);
432 bool GetVerseFilesByPath(FName PackagePath, TArray<FName>* OutFilePaths, bool bRecursive) const;
434 void PrioritizeSearchPath(const FString& PathToPrioritize);
437 void Serialize(FArchive& Ar, Impl::FEventContext& EventContext);
439 FAssetRegistryState::EInitializationMode Mode = FAssetRegistryState::EInitializationMode::Append, bool bEmitAssetEvents = false);
441 bool IsLoadingAssets() const;
442 bool IsGathering() const;
443 bool HasSerializedDiscoveryCache() const;
446 bool ResolveRedirect(const FString& InPackageName, FString& OutPackageName) const;
447#if WITH_EDITOR
451 Impl::FClassInheritanceContext& InheritanceContext, FString& DirPath, int64 BeforeTimeStamp);
453#endif
455 const FString& InAssetPath, const FString& AssetPathWithTrailingSlash, const FString& FileSystemPath);
456 void OnContentPathDismounted(Impl::FEventContext& EventContext, const FString& InAssetPath,
457 const FString& AssetPathNoTrailingSlash, const FString& FileSystemPath);
458
459
460 // Other helper functions called by UAssetRegistryImpl
461
462
470
476
504
508 void LogSearchDiagnostics(double StartTime);
510 void TickGatherPackage(UE::AssetRegistry::FInterfaceWriteScopeLock& ScopeLock, Impl::FEventContext& EventContext, const FString& PackageName, const FString& LocalPath);
511 void ClearGathererCache();
512#if WITH_EDITOR
513 void AssetsSaved(UE::AssetRegistry::Impl::FEventContext& EventContext, TArray<FAssetData>&& Assets);
515 bool bUpdateDiskCacheAfterLoad);
530
535 void LoadCalculatedDependencies(FName PackageName, Impl::FClassInheritanceContext& InheritanceContext,
536 bool& bOutHadActivity);
538 void AddDirectoryReferencer(FName PackageName, const FString& DirectoryLocalPathOrLongPackageName);
541
544
546#endif
547
549 void AddEmptyPackage(FName PackageName);
551 bool RemoveEmptyPackage(FName PackageName);
553 bool AddAssetPath(Impl::FEventContext& EventContext, FName PathToAdd);
557 void RemovePackageData(Impl::FEventContext& EventContext, const FName PackageName);
562
565 const TSet<FTopLevelAssetPath>& ExcludedClassNames, TSet<FTopLevelAssetPath>& SubClassNames) const;
566
567 bool IsInitialSearchCompleted() const { return bInitialSearchCompleted.load(std::memory_order_relaxed); }
568 bool IsTempCachingEnabled() const { return bIsTempCachingEnabled; }
569 bool IsTempCachingAlwaysEnabled() const { return bIsTempCachingAlwaysEnabled; }
570 bool IsInitialSearchStarted() const { return bInitialSearchStarted; }
571 bool IsAdditionalMountSearchInProgress() const { return bAdditionalMountSearchInProgress.load(std::memory_order_relaxed); }
572 bool IsSearchAllAssets() const { return bSearchAllAssets; }
573 Impl::FClassInheritanceBuffer& GetTempCachedInheritanceBuffer() { return TempCachedInheritanceBuffer; }
574 uint64 GetSavedGeneratorClassesVersionNumber() const { return SavedGeneratorClassesVersionNumber; }
575 uint64 GetSavedAllClassesVersionNumber() const { return SavedAllClassesVersionNumber; }
578
581
583 Impl::EPerformanceMode GetPerformanceMode() const { return PerformanceMode; }
585 bool ShouldSortDependencies() const;
586 bool ShouldSortReferencers() const;
587
588 const FAssetRegistryState& GetState() const;
589 const FPathTree& GetCachedPathTree() const;
590 const TSet<FName>& GetCachedEmptyPackages() const;
591
593 bool ShouldSkipAsset(FTopLevelAssetPath AssetClass, uint32 PackageFlags) const;
594 bool ShouldSkipAsset(const UObject* InAsset) const;
595
598
605
606#if WITH_EDITOR
611 void RequestPauseBackgroundProcessing();
612 void RequestResumeBackgroundProcessing();
613 bool IsBackgroundProcessingPaused() const;
615
616#endif
617private:
618
620 IAssetRegistry::FAssetCollisionEvent AssetCollisionEvent;
621
623 template<typename TScopeLock>
630 void EnumerateAssetsByPathNoTags(FName PackagePath,
631 TFunctionRef<bool(const FAssetData&)> Callback, bool bRecursive, bool bIncludeOnlyOnDiskAssets) const;
633 void InitRedirectors(Impl::FEventContext& EventContext, Impl::FClassInheritanceContext& InheritanceContext,
636 void ReadScriptPackages();
637 /* Try to construct the gatherer if it does not already exist. If that is not possible (e.g., because we are shutting down)
638 * return false. If it was successfully created or already existed, return true.
639 */
640 bool TryConstructGathererIfNeeded();
642 void SearchAllAssetsInitialAsync(Impl::FEventContext& EventContext, Impl::FClassInheritanceContext& InheritanceContext);
648 void AssetSearchDataGathered(Impl::FEventContext& EventContext,
649 TMultiMap<FName, TUniquePtr<FAssetData>>& AssetResults,
652 TOptional<TSet<FString>>& MountPointsForVerifyAfterGather,
655 bool ShouldSkipGatheredAsset(FAssetData& AssetData);
656
661 void PathDataGathered(Impl::FEventContext& EventContext, TRingBuffer<FString>& PathResults,
663 TOptional<TSet<FString>>& MountPointsForVerifyAfterGather);
664
666 void DependencyDataGathered(TMultiMap<FName, FPackageDependencyData>& DependsResults,
669 TOptional<TSet<FString>>& MountPointsForVerifyAfterGather);
670
672 void CookedPackageNamesWithoutAssetDataGathered(Impl::FEventContext& EventContext,
673 TRingBuffer<FString>& CookedPackageNamesWithoutAssetDataResults, Impl::FInterruptionContext& InOutInterruptionContext);
674
676 void VerseFilesGathered(Impl::FEventContext& EventContext, TRingBuffer<FName>& VerseResults, Impl::FInterruptionContext& InOutInterruptionContext);
677
679 void AddAssetData(Impl::FEventContext& EventContext, FAssetData* AssetData);
680
682 void UpdateAssetData(Impl::FEventContext& EventContext, FAssetData* AssetData, FAssetData&& NewAssetData, bool bKeepDeletedTags);
683
685 void AddNonOverlappingTags(Impl::FEventContext& EventContext, FAssetData& ExistingAssetData,
686 const FAssetData& NewAssetData);
687
689 bool RemoveAssetData(Impl::FEventContext& EventContext, FAssetData* AssetData);
690
692 bool RemoveAssetDatas(Impl::FEventContext& EventContext, TArrayView<FAssetData*> AssetDatas);
693
694#if WITH_EDITOR
706
709
712
713#endif // WITH_EDITOR
714 void GetSubClasses_Recursive(Impl::FClassInheritanceContext& InheritanceContext, FTopLevelAssetPath InClassName,
716
718 void CachePathsFromState(Impl::FEventContext& EventContext, const FAssetRegistryState& InState);
719
721 void AddCachedBPClassParent(const FTopLevelAssetPath& ClassPath, const FTopLevelAssetPath& NotYetRedirectedParentPath);
722
724 void UpdateInheritanceBuffer(Impl::FClassInheritanceBuffer& OutBuffer) const;
725
727 void ConsumeOrDeferPreloadedPremade(UAssetRegistryImpl& UARI, Impl::FEventContext& EventContext);
729 void LoadPremadeAssetRegistry(Impl::FEventContext& Context,
732 void UpdatePersistentMountPoints();
733 void OnInitialSearchCompleted(Impl::FEventContext& EventContext);
734 void OnAdditionalMountSearchCompleted(Impl::FEventContext& EventContext);
735
739 friend FAssetDataGatherer;
740 bool ClassRequiresGameThreadProcessing(const UClass* Class) const;
741
742 friend UAssetRegistryImpl;
747 TUniquePtr<FAssetDataGatherer>& AccessGlobalGatherer() { return GlobalGatherer; }
748
749 void UpdateMaxSecondsPerFrame();
750
752 void Shrink();
753private:
754
757
759 TSet<FName> CachedVerseFiles;
760 TMap<FName, TArray<FName>> CachedVerseFilesByPath;
761
763 FAssetRegistrySerializationOptions SerializationOptions;
764 FAssetRegistrySerializationOptions DevelopmentSerializationOptions;
765
767 TSet<FName> CachedEmptyPackages;
768
771
773 Impl::FFilterTagRules CachedParsedFilterRules;
774
776 bool bIsTempCachingEnabled;
777
779 bool bIsTempCachingAlwaysEnabled;
780
782 Impl::FClassInheritanceBuffer TempCachedInheritanceBuffer;
783
784 uint64 SavedGeneratorClassesVersionNumber;
785 uint64 SavedAllClassesVersionNumber;
786
788 FPathTree CachedPathTree;
789
791 TUniquePtr<FAssetDataGatherer> GlobalGatherer;
792
794 UE::AssetDataGather::FResults BackgroundResults;
795
798 TMultiMap<FName, TUniquePtr<FAssetData>> DeferredAssetsForGameThread;
799 TMultiMap<FName, FPackageDependencyData> DeferredDependencies;
800 TMultiMap<FName, FPackageDependencyData> DeferredDependenciesForGameThread;
802 TSet<FTopLevelAssetPath> GameThreadRequestedClasses;
803 FCriticalSection GameThreadRequestedClassesLock;
805 std::atomic<bool> bGameThreadRequestedClassesShouldRetry{ false };
806 std::atomic<bool> bGameThreadRequestedClassesShouldProcess{ false };
807
808#if !NO_LOGGING
810 TMap<FTopLevelAssetPath, int64> TagSizeByClass;
811#endif
812
817 TSet<FName> PersistentMountPoints;
818
820 float StoreGatherResultsTimeSeconds;
822 int32 HighestPending = 0;
823
825 double InitialSearchStartTime = 0.0f;
827 double AdditionalMountSearchStartTime = 0.0f;
829 bool bInitialSearchStarted = false;
831 bool bInitializationComplete = false;
835 std::atomic<bool> bInitialSearchCompleted;
839 std::atomic<bool> bAdditionalMountSearchInProgress;
844 bool bPreloadingComplete = false;
846 Impl::EGatherStatus GatherStatus;
848 Impl::EPerformanceMode PerformanceMode;
849
854 bool bVerifyMountPointAfterGather;
855
857 bool bSearchAllAssets;
858
859 bool bVerboseLogging;
860
861 bool bForceCompletionEvenIfClassNotLoaded = false;
862 bool bForceCompletionEvenIfNotOnGameThread = false;
863 bool bProcessedAnyAssetsAfterRetryDeferred = true;
864 float MaxSecondsPerFrame = 0.04f;
865
867 TSet<FTopLevelAssetPath> ClassGeneratorNames;
868
869 struct FAssetRegistryPackageRedirect
870 {
871 public:
872 FAssetRegistryPackageRedirect(const FString& InSourcePackageName, const FString& InDestPackageName)
873 : SourcePackageName(InSourcePackageName), DestPackageName(InDestPackageName)
874 {
875 }
876 FString SourcePackageName;
877 FString DestPackageName;
878 };
880
881#if WITH_EDITOR
888
891
894
902
908 std::atomic<bool> bGameThreadTakeOverGatherEachTick;
909
914
916#endif
917#if WITH_ENGINE && WITH_EDITOR
918 mutable FRWLock SkipClassesLock;
923#endif
928
930};
931
932namespace Impl
933{
934
969
970
971/*
972 * An accessor for the inheritance map and related data for functions that need them; the source
973 * of this data is an internal detail unneeded by the functions reading it. Readers of the data call
974 * ConditionalUpdate to ensure it is up to date before reading it.
975 */
999
1022
1025{
1026public:
1029
1031 void LazyStartTimer();
1036 void RecordTimer();
1037
1054
1065
1066
1072
1073public:
1080 double TimingStartTime = -1.;
1082 bool bHandleCompletion = false;
1083 bool bHandleDeferred = false;
1086 bool bIsInGameThread = false;
1087};
1088
1089} // namespace Impl within namespace UE::AssetRegistry
1090
1091namespace Utils
1092{
1093
1095enum class EFilterMode : uint8
1096{
1098 Inclusive,
1100 Exclusive,
1101};
1102
1106bool RunAssetThroughFilter(const FAssetData& AssetData, const FARCompiledFilter& Filter, const EFilterMode FilterMode);
1114void RunAssetsThroughFilter(TArray<FAssetData>& AssetDataList, const FARCompiledFilter& Filter, const EFilterMode FilterMode);
1115
1123 const ITargetPlatform* TargetPlatform = nullptr,
1125 bool bSuppressWarnings = false);
1126
1132
1141 bool bSuppressWarnings);
1142
1148
1154
1162void PrioritizeAssetInstall(const FAssetData& AssetData);
1163
1171
1174
1182bool IsPathMounted(const FString& Path, const TSet<FString>& MountPointsNoTrailingSlashes, FString& StringBuffer);
1183
1196 bool& bOutStopIteration, TFunctionRef<bool(const UObject* Object, FAssetData&& PartialAssetData)> Callback,
1204 TFunctionRef<bool(FAssetData&&)> Callback, bool bSkipARFilteredAssets);
1205
1206} // namespace Utils within namespace UE::AssetRegistry
1207
1208// Normalization functions for paths. We require that normalized paths are case-insensitively string-identical for the same input
1209// path specification. e.g. all slashes must be replaced with forward-slashes. Special case: a leading \\ is left unreplaced,
1210// so //share will be seen as different than \\share.
1211FString CreateStandardFilename(const FString& InFilename);
1212
1213} // namespace UE::AssetRegistry
1214
1215
1217// Inline implementations
1219
1220
1221namespace UE::AssetRegistry
1222{
1223
1224#if WITH_EDITOR
1225inline uint32& FAssetRegistryImpl::GetBackgroundTickInterruptionsCount()
1226{
1228}
1229
1231{
1232 return bGameThreadTakeOverGatherEachTick.load(std::memory_order_relaxed);
1233}
1234
1236{
1237 bGameThreadTakeOverGatherEachTick.store(bValue, std::memory_order_relaxed);
1238}
1239#endif
1240
1241} // namespace UE::AssetRegistry
#define FORCEINLINE
Definition AndroidPlatform.h:140
FORCEINLINE bool IsTickActive(UE::AssetRegistry::Impl::EGatherStatus Status)
Definition AssetRegistryImpl.h:378
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define UE_NODISCARD_CTOR
Definition Platform.h:761
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
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
const bool
Definition NetworkReplayStreaming.h:178
#define MAX_uint64
Definition NumericLimits.h:22
FRWScopeLockType
Definition ScopeRWLock.h:137
@ SLT_ReadOnly
Definition ScopeRWLock.h:138
@ SLT_Write
Definition ScopeRWLock.h:139
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition AssetDataGatherer.h:175
Definition AssetRegistryState.h:158
Definition DependsNode.h:16
Definition Event.h:21
Definition NameTypes.h:617
Definition PackageReader.h:20
Definition PathTree.h:13
Definition ArrayView.h:139
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition RingBuffer.h:135
Definition UniquePtr.h:107
Definition AssetRegistry.h:21
Definition Class.h:3793
Definition AssetRegistryImpl.h:394
void SetTemporaryCachingMode(bool bEnable)
Definition AssetRegistry.cpp:9416
void AddEmptyPackage(FName PackageName)
Definition AssetRegistry.cpp:8090
void LogSearchDiagnostics(double StartTime)
Definition AssetRegistry.cpp:6060
void CompileFilter(Impl::FClassInheritanceContext &InheritanceContext, const FARFilter &InFilter, FARCompiledFilter &OutCompiledFilter) const
Definition AssetRegistry.cpp:4233
bool HasAssets(const FName PackagePath, const bool bRecursive) const
Definition AssetRegistry.cpp:2617
void TickGatherPackage(UE::AssetRegistry::FInterfaceWriteScopeLock &ScopeLock, Impl::FEventContext &EventContext, const FString &PackageName, const FString &LocalPath)
Definition AssetRegistry.cpp:6106
Impl::FClassInheritanceBuffer & GetTempCachedInheritanceBuffer()
Definition AssetRegistryImpl.h:573
void SetGameThreadTakeOverGatherEachTick(bool bValue)
void SetPerformanceMode(Impl::EPerformanceMode NewMode)
Definition AssetRegistry.cpp:2249
const FAssetRegistryState & GetState() const
Definition AssetRegistry.cpp:10459
bool AddPath(Impl::FEventContext &EventContext, FStringView PathToAdd)
Definition AssetRegistry.cpp:4537
void SetManageReferences(FSetManageReferencesContext &Context)
Definition AssetRegistry.cpp:10006
Impl::EPerformanceMode GetPerformanceMode() const
Definition AssetRegistryImpl.h:583
bool AddAssetPath(Impl::FEventContext &EventContext, FName PathToAdd)
Definition AssetRegistry.cpp:8100
void RemoveVerseFile(Impl::FEventContext &EventContext, FName VerseFilePathToRemove)
Definition AssetRegistry.cpp:8445
void ConditionalRetryGatherAssetsForGameThread(Impl::FTickContext &TickContext)
Definition AssetRegistry.cpp:5672
bool ShouldSkipAsset(FTopLevelAssetPath AssetClass, uint32 PackageFlags) const
Definition AssetRegistry.cpp:10474
void ConditionalClearGameThreadRequestedClasses(Impl::FTickContext &TickContext)
Definition AssetRegistry.cpp:5689
void ProcessGameThreadRequestedClasses()
Definition AssetRegistry.cpp:5640
bool IsAdditionalMountSearchInProgress() const
Definition AssetRegistryImpl.h:571
bool IsInitialSearchStarted() const
Definition AssetRegistryImpl.h:570
static uint64 GetCurrentAllClassesVersionNumber()
Definition AssetRegistry.cpp:1982
bool IsTempCachingAlwaysEnabled() const
Definition AssetRegistryImpl.h:569
void AppendState(Impl::FEventContext &EventContext, const FAssetRegistryState &InState, FAssetRegistryState::EInitializationMode Mode=FAssetRegistryState::EInitializationMode::Append, bool bEmitAssetEvents=false)
Definition AssetRegistry.cpp:6445
bool ShouldSortDependencies() const
Definition AssetRegistry.cpp:2268
void CollectCodeGeneratorClasses()
Definition AssetRegistry.cpp:1987
FSoftObjectPath GetAndScanRedirectedObjectPath(FInterfaceWriteScopeLock &ScopeLock, const FSoftObjectPath &ObjectPath, UE::AssetRegistry::Impl::FEventContext *EventContext, UE::AssetRegistry::Impl::FClassInheritanceContext *InheritanceContext)
Definition AssetRegistry.cpp:3778
Impl::EGatherStatus TickGatherer(Impl::FTickContext &TickContext)
Definition AssetRegistry.cpp:5351
void ScanPathsSynchronous(FInterfaceWriteScopeLock *ScopeLock, Impl::FScanPathContext &Context)
Definition AssetRegistry.cpp:6839
bool IsLoadingAssets() const
Definition AssetRegistry.cpp:5021
const FPathTree & GetCachedPathTree() const
Definition AssetRegistry.cpp:10464
bool ResolveRedirect(const FString &InPackageName, FString &OutPackageName) const
Definition AssetRegistry.cpp:1372
bool IsInitialSearchCompleted() const
Definition AssetRegistryImpl.h:567
bool ShouldSortReferencers() const
Definition AssetRegistry.cpp:2274
void CopySerializationOptions(FAssetRegistrySerializationOptions &OutOptions, ESerializationTarget Target) const
Definition AssetRegistry.cpp:1538
void OnPluginLoadingComplete(bool bPhaseSuccessful)
Definition AssetRegistry.cpp:1470
bool SetPrimaryAssetIdForObjectPath(Impl::FEventContext &EventContext, const FSoftObjectPath &ObjectPath, FPrimaryAssetId PrimaryAssetId)
Definition AssetRegistry.cpp:10349
bool IsGathering() const
Definition AssetRegistry.cpp:5026
void WaitForGathererIdleIfSynchronous()
Definition AssetRegistry.cpp:5293
void EnumerateDiskAssets(const FARCompiledFilter &InFilter, TSet< FName > &PackagesToSkip, TFunctionRef< bool(const FAssetData &)> Callback, UE::AssetRegistry::EEnumerateAssetsFlags InEnumerateFlags) const
Definition AssetRegistry.cpp:3169
bool RemoveEmptyPackage(FName PackageName)
Definition AssetRegistry.cpp:8095
void PrioritizeSearchPath(const FString &PathToPrioritize)
Definition AssetRegistry.cpp:4702
void OnContentPathDismounted(Impl::FEventContext &EventContext, const FString &InAssetPath, const FString &AssetPathNoTrailingSlash, const FString &FileSystemPath)
Definition AssetRegistry.cpp:9333
void GetSubClasses(Impl::FClassInheritanceContext &InheritanceContext, const TArray< FTopLevelAssetPath > &InClassNames, const TSet< FTopLevelAssetPath > &ExcludedClassNames, TSet< FTopLevelAssetPath > &SubClassNames) const
Definition AssetRegistry.cpp:9733
void WaitForGathererIdle(float TimeoutSeconds)
Definition AssetRegistry.cpp:5301
IAssetRegistry::FAssetCollisionEvent & OnAssetCollision_Private()
Definition AssetRegistry.cpp:1184
void SearchAllAssets(Impl::FEventContext &EventContext, Impl::FClassInheritanceContext &InheritanceContext, bool bSynchronousSearch)
Definition AssetRegistry.cpp:2331
bool IsTempCachingEnabled() const
Definition AssetRegistryImpl.h:568
bool GetVerseFilesByPath(FName PackagePath, TArray< FName > *OutFilePaths, bool bRecursive) const
Definition AssetRegistry.cpp:4489
void SetTemporaryCachingModeInvalidated()
Definition AssetRegistry.cpp:9444
uint64 GetSavedGeneratorClassesVersionNumber() const
Definition AssetRegistryImpl.h:574
void ScanModifiedAssetFiles(FInterfaceWriteScopeLock &ScopeLock, Impl::FEventContext &EventContext, Impl::FClassInheritanceContext &InheritanceContext, const TArray< FString > &InFilePaths, UE::AssetRegistry::EScanFlags ScanFlags)
Definition AssetRegistry.cpp:9105
bool IsSearchAllAssets() const
Definition AssetRegistryImpl.h:572
void OnContentPathMounted(UE::AssetRegistry::FInterfaceWriteScopeLock &ScopeLock, Impl::FEventContext &EventContext, Impl::FClassInheritanceContext &InheritanceContext, const FString &InAssetPath, const FString &AssetPathWithTrailingSlash, const FString &FileSystemPath)
Definition AssetRegistry.cpp:9243
void RefreshNativeClasses()
Definition AssetRegistry.cpp:2068
bool HasSerializedDiscoveryCache() const
Definition AssetRegistry.cpp:5031
void RemovePackageData(Impl::FEventContext &EventContext, const FName PackageName)
Definition AssetRegistry.cpp:8381
FAssetRegistryImpl()
Definition AssetRegistry.cpp:958
static uint64 GetCurrentGeneratorClassesVersionNumber()
Definition AssetRegistry.cpp:1974
void AddVerseFile(Impl::FEventContext &EventContext, FName VerseFilePathToAdd)
Definition AssetRegistry.cpp:8428
void RequestGameThreadProcessClass(const FTopLevelAssetPath &RequestedGameThreadClass)
Definition AssetRegistry.cpp:5700
void EnumerateAllDiskAssets(TSet< FName > &PackageNamesToSkip, TFunctionRef< bool(const FAssetData &)> Callback, UE::AssetRegistry::EEnumerateAssetsFlags InEnumerateFlags=UE::AssetRegistry::EEnumerateAssetsFlags::None) const
Definition AssetRegistry.cpp:3389
void ClearGathererCache()
Definition AssetRegistry.cpp:2571
bool GetAncestorClassNames(Impl::FClassInheritanceContext &InheritanceContext, FTopLevelAssetPath ClassName, TArray< FTopLevelAssetPath > &OutAncestorClassNames) const
Definition AssetRegistry.cpp:3905
FSoftObjectPath GetRedirectedObjectPath(FInterfaceReadScopeLock &ScopeLock, const FSoftObjectPath &ObjectPath)
Definition AssetRegistry.cpp:3773
void GetAllocatedSize(bool bLogDetailed, SIZE_T &StateSize, SIZE_T &StaticSize, SIZE_T &SearchSize) const
Definition AssetRegistry.cpp:6551
uint64 GetSavedAllClassesVersionNumber() const
Definition AssetRegistryImpl.h:575
bool RemoveAssetPath(Impl::FEventContext &EventContext, FName PathToRemove, bool bEvenIfAssetsStillExist=false)
Definition AssetRegistry.cpp:8108
const TSet< FName > & GetCachedEmptyPackages() const
Definition AssetRegistry.cpp:10469
void ConditionalLoadPremadeAssetRegistry(UE::AssetRegistry::FInterfaceWriteScopeLock &ScopeLock, UE::AssetRegistry::Impl::FEventContext &EventContext)
Definition AssetRegistry.cpp:793
Definition AssetRegistryImpl.h:208
UE_NODISCARD_CTOR FRWScopeLockWithPriority(Private::FRWLockWithPriority &InLockObject, FRWScopeLockType InLockType, Private::ELockPriority InPriority=Private::PriorityHigh)
Definition AssetRegistryImpl.h:210
Private::ELockPriority Priority
Definition AssetRegistryImpl.h:239
void ReleaseReadOnlyLockAndAcquireWriteLock_USE_WITH_CAUTION()
Definition AssetRegistryImpl.h:224
FRWScopeLockType LockType
Definition AssetRegistryImpl.h:240
Private::FRWLockWithPriority & Lock
Definition AssetRegistryImpl.h:237
TOptional< TRWScopeLock< Private::FRWLockWithPriority > > GuardWrapper
Definition AssetRegistryImpl.h:238
Definition AssetRegistryImpl.h:151
FScopedHighPriorityWaitTracker(std::atomic< int32 > *InCounter, Private::ELockPriority InPriority)
Definition AssetRegistryImpl.h:153
~FScopedHighPriorityWaitTracker()
Definition AssetRegistryImpl.h:169
Definition AssetRegistryImpl.h:191
TOptional< TScopeLockType > GuardWrapper
Definition AssetRegistryImpl.h:202
UE::AssetRegistry::Private::FRWLockWithPriority & Lock
Definition AssetRegistryImpl.h:203
UE::AssetRegistry::Private::ELockPriority Priority
Definition AssetRegistryImpl.h:204
UE_NODISCARD_CTOR TRWScopeLockWithPriority(Private::FRWLockWithPriority &InLock, Private::ELockPriority InPriority=Private::PriorityHigh)
Definition AssetRegistryImpl.h:193
Definition CriticalSection.h:14
Definition ScopeLock.h:21
Definition Object.h:95
Type
Definition IAssetRegistry.h:51
Type
Definition IAssetRegistry.h:40
Definition ExpressionParserTypes.h:21
UE::FRecursiveMutex Mutex
Definition MeshPaintVirtualTexture.cpp:164
Definition OverriddenPropertySet.cpp:45
Definition AssetRegistry.cpp:758
Definition AssetDataGatherer.h:86
EGatherStatus
Definition AssetRegistryImpl.h:267
EPerformanceMode
Definition AssetRegistryImpl.h:278
@ BulkLoading
Definition AssetRegistryImpl.h:280
@ MostlyStatic
Definition AssetRegistryImpl.h:283
Definition AssetRegistry.cpp:329
ELoadResult
Definition AssetRegistry.cpp:367
Definition AssetRegistryImpl.h:48
FRWLockWithPriority FInterfaceRWLock
Definition AssetRegistryImpl.h:49
TSet< FAssetData *, FCachedAssetKeyFuncs > FAssetDataMap
Definition AssetDataMap.h:113
void EnumerateMemoryAssetsHelper(const FARCompiledFilter &InFilter, TSet< FName > &OutPackageNamesWithAssets, bool &bOutStopIteration, TFunctionRef< bool(const UObject *Object, FAssetData &&PartialAssetData)> Callback, bool bSkipARFilteredAssets)
Definition AssetRegistry.cpp:2902
void EnumerateMemoryAssets(const FARCompiledFilter &InFilter, TSet< FName > &OutPackageNamesWithAssets, bool &bOutStopIteration, UE::AssetRegistry::Private::FInterfaceRWLock &InterfaceLock, const FAssetRegistryState &GuardedDataState, TFunctionRef< bool(FAssetData &&)> Callback, bool bSkipARFilteredAssets)
Definition AssetRegistry.cpp:3101
TMap< FName, Impl::FParsedFilterTagRules > ParseFilterTags(const TArray< FString > &FilterListItems, bool bIsFilteringDevelopmentAR, bool bUseAllowListInsteadOfDenyList)
Definition AssetRegistry.cpp:1686
bool RunAssetThroughFilter(const FAssetData &AssetData, const FARCompiledFilter &Filter, const EFilterMode FilterMode)
Definition AssetRegistry.cpp:4112
bool HasEngineModuleLoaded()
Definition AssetRegistry.cpp:1822
bool ReadAssetFile(FPackageReader &PackageReader, IAssetRegistry::FLoadPackageRegistryData &InOutData)
Definition AssetRegistry.cpp:6620
bool IsFilterValid(const FARCompiledFilter &Filter)
Definition AssetRegistryState.cpp:4115
void PrioritizeAssetInstall(const FAssetData &AssetData)
Definition AssetRegistry.cpp:4457
void RunAssetsThroughFilter(TArray< FAssetData > &AssetDataList, const FARCompiledFilter &CompiledFilter, const EFilterMode FilterMode)
Definition AssetRegistry.cpp:4189
bool IsPathMounted(const FString &Path, const TSet< FString > &MountPointsNoTrailingSlashes, FString &StringBuffer)
Definition AssetRegistry.cpp:7103
TMap< FTopLevelAssetPath, TSet< FName > > ResolveFilterTags(Impl::FFilterTagRules &InOutRules, bool bSuppressWarnings)
Definition AssetRegistry.cpp:1902
void EnumerateAllMemoryAssets(TSet< FName > &OutPackageNamesWithAssets, bool &bOutStopIteration, TFunctionRef< bool(FAssetData &&)> Callback)
Definition AssetRegistry.cpp:3367
bool GetAssetAvailabilityProgressTypeSupported(EAssetAvailabilityProgressReportingType::Type ReportType)
Definition AssetRegistry.cpp:4437
EFilterMode
Definition AssetRegistryImpl.h:1096
bool RunAssetThroughFilter_Unchecked(const FAssetData &AssetData, const FARCompiledFilter &Filter, const bool bPassFilterValue)
Definition AssetRegistry.cpp:4124
void UpdateSerializationOptions(FAssetRegistrySerializationOptions &InOutOptions, Impl::FFilterTagRules &InOutFilterRules, bool bSuppressWarnings)
Definition AssetRegistry.cpp:1662
void InitializeMountPoints(TOptional< TSet< FString > > &MountPoints)
Definition AssetRegistry.cpp:7091
EAssetAvailability::Type GetAssetAvailability(const FAssetData &AssetData)
Definition AssetRegistry.cpp:4318
void InitializeSerializationOptionsFromIni(FAssetRegistrySerializationOptions &Options, Impl::FFilterTagRules *OutRules, const ITargetPlatform *TargetPlatform, UE::AssetRegistry::ESerializationTarget Target, bool bSuppressWarnings)
Definition AssetRegistry.cpp:1565
float GetAssetAvailabilityProgress(const FAssetData &AssetData, EAssetAvailabilityProgressReportingType::Type ReportType)
Definition AssetRegistry.cpp:4372
Definition PackageReader.h:15
FString CreateStandardFilename(const FString &InPath)
Definition AssetRegistry.cpp:11229
EDeferFlag
Definition AssetRegistryImpl.h:361
FRWScopeLockWithPriority FInterfaceRWScopeLock
Definition AssetRegistryImpl.h:54
TRWScopeLockWithPriority< UE::TReadScopeLock< Private::FRWLockWithPriority > > FInterfaceReadScopeLock
Definition AssetRegistryImpl.h:52
ESerializationTarget
Definition AssetRegistryInterface.h:195
EAppendMode
Definition IAssetRegistry.h:134
EScanFlags
Definition IAssetRegistry.h:62
TRWScopeLockWithPriority< UE::TWriteScopeLock< Private::FRWLockWithPriority > > FInterfaceWriteScopeLock
Definition AssetRegistryImpl.h:53
EEnumerateAssetsFlags
Definition AssetRegistryInterface.h:211
UE_STRING_CLASS Result(Forward< LhsType >(Lhs), RhsLen)
Definition String.cpp.inl:732
Definition ARFilter.h:193
Definition ARFilter.h:23
Definition AssetData.h:162
Definition AssetRegistryState.h:58
Definition PrimaryAssetId.h:126
Definition SoftObjectPath.h:56
Definition TickTaskManager.cpp:201
Definition TopLevelAssetPath.h:38
Definition IAssetRegistry.h:1093
Definition Optional.h:131
OptionalType & Emplace(ArgsType &&... Args)
Definition Optional.h:323
Definition AssetDataGatherer.h:159
Definition AssetDataGatherer.h:125
Definition IAssetRegistry.h:110
Definition AssetRegistryImpl.h:247
bool bDirty
Definition AssetRegistryImpl.h:255
TMap< FTopLevelAssetPath, TArray< FTopLevelAssetPath > > ReverseInheritanceMap
Definition AssetRegistryImpl.h:251
bool IsUpToDate(uint64 CurrentAllClassesVersionNumber) const
Definition AssetRegistry.cpp:9667
uint64 SavedAllClassesVersionNumber
Definition AssetRegistryImpl.h:253
TMap< FTopLevelAssetPath, FTopLevelAssetPath > InheritanceMap
Definition AssetRegistryImpl.h:249
void Clear()
Definition AssetRegistry.cpp:9661
SIZE_T GetAllocatedSize() const
Definition AssetRegistry.cpp:9672
Definition AssetRegistryImpl.h:977
void OnLockReentered(FAssetRegistryImpl &GuardedData)
Definition AssetRegistry.cpp:9725
FClassInheritanceBuffer * Buffer
Definition AssetRegistryImpl.h:979
FAssetRegistryImpl * AssetRegistryImpl
Definition AssetRegistryImpl.h:983
void BindToBuffer(FClassInheritanceBuffer &InBuffer, FAssetRegistryImpl &InAssetRegistryImpl, bool bInInheritanceMapUpToDate, bool bInCodeGeneratorClassesUpToDate)
Definition AssetRegistry.cpp:9677
void SelectBuffer(FAssetRegistryImpl &GuardedData, uint64 CurrentGeneratorClassesVersionNumber, uint64 CurrentAllClassesVersionNumber)
Definition AssetRegistry.cpp:9703
bool bCodeGeneratorClassesUpToDate
Definition AssetRegistryImpl.h:987
FClassInheritanceBuffer * StackBuffer
Definition AssetRegistryImpl.h:981
bool bInheritanceMapUpToDate
Definition AssetRegistryImpl.h:985
void ConditionalUpdate()
Definition AssetRegistry.cpp:9686
Definition AssetRegistryImpl.h:941
TArray< FString > RequiredLoads
Definition AssetRegistryImpl.h:955
TArray< TPair< FName, EEvent > > VerseEvents
Definition AssetRegistryImpl.h:954
void Clear()
Definition AssetRegistry.cpp:10556
bool bFileLoadedEventBroadcast
Definition AssetRegistryImpl.h:957
TOptional< IAssetRegistry::FFileLoadProgressUpdateData > ProgressUpdateData
Definition AssetRegistryImpl.h:951
bool bScanStartedEventBroadcast
Definition AssetRegistryImpl.h:958
TArray< TPair< FAssetData, EEvent > > AssetEvents
Definition AssetRegistryImpl.h:953
bool IsEmpty() const
Definition AssetRegistry.cpp:10569
EEvent
Definition AssetRegistryImpl.h:943
TArray< TPair< FString, EEvent > > PathEvents
Definition AssetRegistryImpl.h:952
bool bHasSentFileLoadedEventBroadcast
Definition AssetRegistryImpl.h:959
bool bKnownGathersCompleteEventBroadcast
Definition AssetRegistryImpl.h:960
TArray< FString > BlockedFiles
Definition AssetRegistryImpl.h:956
Definition AssetRegistryImpl.h:350
bool bContainsAnyUnresolvedRule
Definition AssetRegistryImpl.h:355
SIZE_T GetAllocatedSize() const
Definition AssetRegistryImpl.h:351
uint64 ClassesFingerprint
Definition AssetRegistryImpl.h:354
TMap< FName, FParsedFilterTagRules > Rules
Definition AssetRegistryImpl.h:353
Definition AssetRegistry.cpp:911
Definition AssetRegistryImpl.h:288
double GetTickStartTime() const
Definition AssetRegistryImpl.h:318
FInterruptionContext(double InTickStartTime, double InMaxRunningTime, ShouldExitEarlyCallbackType &Callback)
Definition AssetRegistryImpl.h:299
void SetEarlyExitCallback(const ShouldExitEarlyCallbackType &InCallback)
Definition AssetRegistryImpl.h:304
void SetLimitedTickTime(double InTickStartTime, double InMaxRunningTime)
Definition AssetRegistryImpl.h:313
bool ShouldExitEarly()
Definition AssetRegistry.cpp:11214
TFunction< bool(void)> ShouldExitEarlyCallbackType
Definition AssetRegistryImpl.h:290
bool IsTimeSlicingEnabled() const
Definition AssetRegistryImpl.h:319
void SetUnlimitedTickTime()
Definition AssetRegistryImpl.h:308
FInterruptionContext(double InTickStartTime, double InMaxRunningTime)
Definition AssetRegistryImpl.h:293
void RequestEarlyExit()
Definition AssetRegistryImpl.h:322
bool WasInterrupted() const
Definition AssetRegistryImpl.h:320
int32 InheritanceDepth
Definition AssetRegistryImpl.h:342
const UClass * ClassPtr
Definition AssetRegistryImpl.h:341
FTopLevelAssetPath ClassPath
Definition AssetRegistryImpl.h:340
Definition AssetRegistryImpl.h:337
TArray< FFilterTagsRule > OrderedList
Definition AssetRegistryImpl.h:345
bool bContainsAnyUnresolvedRule
Definition AssetRegistryImpl.h:346
Definition AssetRegistryImpl.h:1002
bool bForceRescan
Definition AssetRegistryImpl.h:1017
TArray< FString > LocalDirs
Definition AssetRegistryImpl.h:1009
TArray< FString > PackageDirs
Definition AssetRegistryImpl.h:1008
int32 NumFoundAssets
Definition AssetRegistryImpl.h:1016
TArray< FString > LocalFiles
Definition AssetRegistryImpl.h:1011
bool bIgnoreDenyListScanFilters
Definition AssetRegistryImpl.h:1018
FClassInheritanceContext & InheritanceContext
Definition AssetRegistryImpl.h:1014
FEventContext & EventContext
Definition AssetRegistryImpl.h:1013
TArray< FString > LocalPaths
Definition AssetRegistryImpl.h:1012
EGatherStatus Status
Definition AssetRegistryImpl.h:1020
TArray< FString > PackageFiles
Definition AssetRegistryImpl.h:1010
bool bIgnoreInvalidPathWarning
Definition AssetRegistryImpl.h:1019
TArray< FSoftObjectPath > * OutFoundAssets
Definition AssetRegistryImpl.h:1015
Definition AssetRegistryImpl.h:1025
Impl::FInterruptionContext InterruptionContext
Definition AssetRegistryImpl.h:1075
EGatherStatus SetIntermediateStatus(EGatherStatus Status)
Definition AssetRegistry.cpp:5782
int32 CalculateNumGatherFromDiskPending()
Definition AssetRegistry.cpp:5760
EGatherStatus UpdateIntermediateStatus()
Definition AssetRegistry.cpp:5801
void RunDependencyDataGathered(TMultiMap< FName, FPackageDependencyData > &DependenciesToProcess, TMultiMap< FName, FPackageDependencyData > &OutDeferredDependencies, TSet< FName > *OutPackagesNeedingDependencyCalculation)
Definition AssetRegistry.cpp:5892
void RunAssetSearchDataGathered(TMultiMap< FName, TUniquePtr< FAssetData > > &InAssetResults, TMultiMap< FName, TUniquePtr< FAssetData > > &OutDeferredAssetResults)
Definition AssetRegistry.cpp:5859
bool bHandleDeferred
Definition AssetRegistryImpl.h:1083
void SetNumGatherFromDiskPendingDirty()
Definition AssetRegistry.cpp:5734
void RecordTimer()
Definition AssetRegistry.cpp:5725
bool bHadAssetsToProcess
Definition AssetRegistryImpl.h:1085
bool bHandleCompletion
Definition AssetRegistryImpl.h:1082
Impl::FClassInheritanceContext & InheritanceContext
Definition AssetRegistryImpl.h:1078
UE::AssetDataGather::FResultContext ResultContext
Definition AssetRegistryImpl.h:1074
void LazyStartTimer()
Definition AssetRegistry.cpp:5718
FAssetRegistryImpl & GuardedData
Definition AssetRegistryImpl.h:1076
bool bIsInGameThread
Definition AssetRegistryImpl.h:1086
double TimingStartTime
Definition AssetRegistryImpl.h:1080
int32 NumGatherFromDiskPending
Definition AssetRegistryImpl.h:1081
TOptional< TSet< FString > > MountPointsForVerifyAfterGather
Definition AssetRegistryImpl.h:1079
Impl::FEventContext & EventContext
Definition AssetRegistryImpl.h:1077
int32 GetNumGatherFromDiskPending()
Definition AssetRegistry.cpp:5739
bool bNumGatherFromDiskPendingDirty
Definition AssetRegistryImpl.h:1084
int32 GetNumPending()
Definition AssetRegistry.cpp:5749
Definition AssetRegistryImpl.h:69
void Wait(FInterfaceWriteScopeLock &ScopeLock)
Definition AssetRegistry.cpp:709
~FAsyncConsumer()
Definition AssetRegistry.cpp:692
void Consume(UAssetRegistryImpl &UARI, UE::AssetRegistry::Impl::FEventContext &EventContext, ELoadResult LoadResult, FAssetRegistryState &&ARState)
Definition AssetRegistry.cpp:736
void PrepareForConsume()
Definition AssetRegistry.cpp:701