27 lines
732 B
C++
27 lines
732 B
C++
#pragma once
|
|
|
|
#include "Pipeline/Core/AssetDatabase/Facade/AssetDatabase.h"
|
|
|
|
namespace XCEngine {
|
|
namespace Resources {
|
|
namespace AssetDatabaseInternal {
|
|
|
|
class AssetDatabaseMaintenanceRunner {
|
|
public:
|
|
explicit AssetDatabaseMaintenanceRunner(AssetDatabase& assetDatabase);
|
|
|
|
AssetDatabase::MaintenanceStats Refresh();
|
|
Core::uint32 CleanupOrphanedArtifacts() const;
|
|
|
|
private:
|
|
void ScanAssetPath(const std::filesystem::path& path,
|
|
std::unordered_map<std::string, bool>& seenPaths);
|
|
void RemoveMissingRecords(const std::unordered_map<std::string, bool>& seenPaths);
|
|
|
|
AssetDatabase& m_assetDatabase;
|
|
};
|
|
|
|
} // namespace AssetDatabaseInternal
|
|
} // namespace Resources
|
|
} // namespace XCEngine
|