#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& seenPaths); void RemoveMissingRecords(const std::unordered_map& seenPaths); AssetDatabase& m_assetDatabase; }; } // namespace AssetDatabaseInternal } // namespace Resources } // namespace XCEngine