UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::AssetDataGather::Private::FMountDir Class Reference

#include <AssetDataGathererPrivate.h>

Public Member Functions

 FMountDir (FAssetDataDiscovery &InDiscovery, FStringView LocalAbsPath, FStringView PackagePath)
 
 ~FMountDir ()
 
FStringView GetLocalAbsPath () const
 
FStringView GetLongPackageName () const
 
FAssetDataDiscoveryGetDiscovery () const
 
FScanDirGetControllingDir (FStringView LocalAbsPath, bool bIsDirectory, FScanDir::FInherited &OutParentData, FString &OutRelPath)
 
SIZE_T GetAllocatedSize () const
 
bool IsComplete () const
 
void GetMonitorData (FStringView InLocalAbsPath, FScanDir::FInherited &OutData) const
 
bool IsMonitored (FStringView InLocalAbsPath) const
 
void TrySetDirectoryProperties (FPathExistence &QueryPath, const FSetPathProperties &InProperties, FScanDirAndParentData *OutControllingDir=nullptr, FStringView *OutControllingDirRelPath=nullptr, bool *bOutMadeChanges=nullptr)
 
void Update (TArray< FScanDirAndParentData > &OutScanRequests)
 
FScanDirGetFirstIncompleteScanDir ()
 
void SetHasStartedScanning ()
 
void Shrink ()
 
void AddChildMount (FMountDir *ChildMount)
 
void RemoveChildMount (FMountDir *ChildMount)
 
void OnDestroyClearChildMounts ()
 
void SetParentMount (FMountDir *ParentMount)
 
FMountDirGetParentMount () const
 
TArray< FMountDir * > GetChildMounts () const
 

Protected Member Functions

void UpdateDenyList ()
 
void MarkDirty (FStringView MountRelPath)
 
void AddChildMountPath (FStringView MountRelPath)
 
bool RemoveChildMountPath (FStringView MountRelPath)
 
bool IsChildMountPath (FStringView MountRelPath) const
 

Protected Attributes

TArray< FString > ChildMountPaths
 
TSet< FString > RelPathsDenyList
 
FString LocalAbsPath
 
FString LongPackageName
 
TRefCountPtr< FScanDirRoot
 
FAssetDataDiscoveryDiscovery
 
FMountDirParentMount = nullptr
 
bool bHasStartedScanning = false
 

Detailed Description

Gather data about a MountPoint that has been registered with FPackageName The FMountDir holds a FScanTree with information about each directory (that is pruned when not in use). It also holds data that is needed only per MountPoint, such as the packagename. It also holds data per subdirectory that is more performant to hold in a map rather than to require the FScanTrees to be kept.

This class is not ThreadSafe; The FAssetDataDiscovery reads/writes its data only while holding TreeLock.

Constructor & Destructor Documentation

◆ FMountDir()

UE::AssetDataGather::Private::FMountDir::FMountDir ( FAssetDataDiscovery InDiscovery,
FStringView  LocalAbsPath,
FStringView  PackagePath 
)

◆ ~FMountDir()

UE::AssetDataGather::Private::FMountDir::~FMountDir ( )

Member Function Documentation

◆ AddChildMount()

void UE::AssetDataGather::Private::FMountDir::AddChildMount ( FMountDir ChildMount)

Record that the MountDir is rooted at a childpath of this. The childpath will not be scanned by this.

◆ AddChildMountPath()

void UE::AssetDataGather::Private::FMountDir::AddChildMountPath ( FStringView  MountRelPath)
protected

Add a ChildMountPath, which indicates that another MountPoint owns that path and this Mount should not scan it.

◆ GetAllocatedSize()

SIZE_T UE::AssetDataGather::Private::FMountDir::GetAllocatedSize ( ) const

Return the memory used by the tree under this MountDir, except that sizeof(*this) is excluded.

◆ GetChildMounts()

TArray< FMountDir * > UE::AssetDataGather::Private::FMountDir::GetChildMounts ( ) const

Return the MountDirs that have been recorded as ChildMounts.

◆ GetControllingDir()

FScanDir * UE::AssetDataGather::Private::FMountDir::GetControllingDir ( FStringView  LocalAbsPath,
bool  bIsDirectory,
FScanDir::FInherited OutParentData,
FString &  OutRelPath 
)

Find the direct parent of InRelPath, or the lowest fallback. See FScanDir::GetControllingDir.

◆ GetDiscovery()

FAssetDataDiscovery & UE::AssetDataGather::Private::FMountDir::GetDiscovery ( ) const

Return the FAssetDataDiscovery that owns this FMountDir.

◆ GetFirstIncompleteScanDir()

FScanDir * UE::AssetDataGather::Private::FMountDir::GetFirstIncompleteScanDir ( )

◆ GetLocalAbsPath()

FStringView UE::AssetDataGather::Private::FMountDir::GetLocalAbsPath ( ) const

The local path from FPackageName, absolute d:\root\Engine\Content rather relative ../../../Engine/Content.

◆ GetLongPackageName()

FStringView UE::AssetDataGather::Private::FMountDir::GetLongPackageName ( ) const

The package path from FPackageName.

◆ GetMonitorData()

void UE::AssetDataGather::Private::FMountDir::GetMonitorData ( FStringView  InLocalAbsPath,
FScanDir::FInherited OutData 
) const

Report the collapsed data for the scandir - allow list, deny list, etc. Returns false data for non child paths.

◆ GetParentMount()

FMountDir * UE::AssetDataGather::Private::FMountDir::GetParentMount ( ) const

Return the parent MountDir.

◆ IsChildMountPath()

bool UE::AssetDataGather::Private::FMountDir::IsChildMountPath ( FStringView  MountRelPath) const
protected

Report whether the given Path is equal to or a child of an existing ChildMountPath.

◆ IsComplete()

bool UE::AssetDataGather::Private::FMountDir::IsComplete ( ) const

Report whether this MountDir is complete: all ScanDirs under it either have scanned or should not scan.

◆ IsMonitored()

bool UE::AssetDataGather::Private::FMountDir::IsMonitored ( FStringView  InLocalAbsPath) const

Return whether the given path is a child path of *this and is allow listed and is not deny listed, which means it will be or has been scanned.

◆ MarkDirty()

void UE::AssetDataGather::Private::FMountDir::MarkDirty ( FStringView  MountRelPath)
protected

Mark that given path needs to be reconsidered by Update.

◆ OnDestroyClearChildMounts()

void UE::AssetDataGather::Private::FMountDir::OnDestroyClearChildMounts ( )

Remove all childmounts. Does not handle properly updating the MountDir to reown those paths; this is used during destruction all MountDirs.

◆ RemoveChildMount()

void UE::AssetDataGather::Private::FMountDir::RemoveChildMount ( FMountDir ChildMount)

Mark that a childpath MountDir is being deleted and the childpath should be scanned again by this.

◆ RemoveChildMountPath()

bool UE::AssetDataGather::Private::FMountDir::RemoveChildMountPath ( FStringView  MountRelPath)
protected

Remove a ChildMountPath, return whether there was a match to be removed.

◆ SetHasStartedScanning()

void UE::AssetDataGather::Private::FMountDir::SetHasStartedScanning ( )

Record a directory under the MountDir has been scanned, used to detect if configuration occurs after scanning.

◆ SetParentMount()

void UE::AssetDataGather::Private::FMountDir::SetParentMount ( FMountDir ParentMount)

Record the backpointer to the parent mountdir that this mountdir's path is a child path of, or null if the parent no longer exists.

◆ Shrink()

void UE::AssetDataGather::Private::FMountDir::Shrink ( )

Minimize data in internal buffers.

◆ TrySetDirectoryProperties()

void UE::AssetDataGather::Private::FMountDir::TrySetDirectoryProperties ( FPathExistence QueryPath,
const FSetPathProperties InProperties,
FScanDirAndParentData OutControllingDir = nullptr,
FStringView OutControllingDirRelPath = nullptr,
bool bOutMadeChanges = nullptr 
)

◆ Update()

void UE::AssetDataGather::Private::FMountDir::Update ( TArray< FScanDirAndParentData > &  OutScanRequests)

Update all incomplete ScanDirs under this MountDir and add any that need to be scanned to OutScanRequests.

◆ UpdateDenyList()

void UE::AssetDataGather::Private::FMountDir::UpdateDenyList ( )
protected

Inspect the Discovery's DenyLists and add the ones applicable to this into this MountDir's set of DenyLists.

Member Data Documentation

◆ bHasStartedScanning

bool UE::AssetDataGather::Private::FMountDir::bHasStartedScanning = false
protected

Records whether any directory at or under the MountDir's root has been scanned.

◆ ChildMountPaths

TArray<FString> UE::AssetDataGather::Private::FMountDir::ChildMountPaths
protected

Child mount paths; these directories should not be scanned by this MountDir.

◆ Discovery

FAssetDataDiscovery& UE::AssetDataGather::Private::FMountDir::Discovery
protected

Backpointer to the Discovery that owns this MountDir.

◆ LocalAbsPath

FString UE::AssetDataGather::Private::FMountDir::LocalAbsPath
protected

Absolute path to the root of the MountDir in the local file system.

◆ LongPackageName

FString UE::AssetDataGather::Private::FMountDir::LongPackageName
protected

LongPackageName that was assigned to the MountDir in FPackageName.

◆ ParentMount

FMountDir* UE::AssetDataGather::Private::FMountDir::ParentMount = nullptr
protected

If this is a nested MountDir (a nested path was registered with FPackageName) ParentMount is a pointer to the FMountDir that corresponds to the registered parent directory.

◆ RelPathsDenyList

TSet<FString> UE::AssetDataGather::Private::FMountDir::RelPathsDenyList
protected

Set of relative path from the MountDir paths that should not be scanned, because they were requested deny listed by clients or because a childmount owns them.

◆ Root

TRefCountPtr<FScanDir> UE::AssetDataGather::Private::FMountDir::Root
protected

ScanDir for the root directory of this MountDir; child paths to scan will be created (and destroyed after use) as children of the ScanDir (with the exception of childmounts).


The documentation for this class was generated from the following files: