Files
XCEngine/Pipeline/Core/AssetDatabase/Maintenance/AssetDatabaseMaintenance.h

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