EM_Task/UnrealEd/Public/AutoReimport/AutoReimportManager.h
Boshuang Zhao 5144a49c9b add
2026-02-13 16:18:33 +08:00

52 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "UObject/Object.h"
#include "AutoReimportManager.generated.h"
class FAutoReimportManager;
/** Struct representing a path on disk, and its virtual mount point */
struct FPathAndMountPoint
{
FPathAndMountPoint() {}
FPathAndMountPoint(FString InPath, FString InMountPoint): Path(MoveTemp(InPath)), MountPoint(MoveTemp(InMountPoint)) {}
/** The directory on disk. Absolute. */
FString Path;
/** The mount point, if any to which this directory relates */
FString MountPoint;
};
/* Deals with auto reimporting of objects when the objects file on disk is modified*/
UCLASS(config = Editor, transient)
class UNREALED_API UAutoReimportManager: public UObject
{
GENERATED_UCLASS_BODY()
public:
~UAutoReimportManager();
/** Initialize during engine startup */
void Initialize();
/** Get a list of absolute directories that we are monitoring */
TArray<FPathAndMountPoint> GetMonitoredDirectories() const;
/** Report an external change to the manager, such that a subsequent equal change reported by the os be ignored */
void IgnoreNewFile(const FString& Filename);
void IgnoreFileModification(const FString& Filename);
void IgnoreMovedFile(const FString& SrcFilename, const FString& DstFilename);
void IgnoreDeletedFile(const FString& Filename);
private:
/** UObject Interface */
virtual void BeginDestroy() override;
/** Private implementation of the reimport manager */
TSharedPtr<class FAutoReimportManager> Implementation;
};