WuhuIslandTesting/Library/PackageCache/com.unity.scriptablebuildpipeline@1.21.5/Editor/Interfaces/IBuildCache.cs
2025-01-07 02:06:59 +01:00

79 lines
3.7 KiB
C#

using System;
using System.Collections.Generic;
using UnityEditor.Build.Content;
using UnityEditor.Build.Pipeline.Utilities;
namespace UnityEditor.Build.Pipeline.Interfaces
{
/// <summary>
/// Base interface for the Build Caching
/// </summary>
public interface IBuildCache : IContextObject
{
/// <summary>
/// Gets a CacheEntry for an asset identified by its GUID.
/// </summary>
/// <param name="asset">GUID identifier for an asset from the Asset Database</param>
/// <param name="version">Version number of the system asking for an entry to distinguish it from previous incompatible entries. (Optional)</param>
/// <returns>CacheEntry representing current asset.</returns>
CacheEntry GetCacheEntry(GUID asset, int version = 1);
/// <summary>
/// Gets a CacheEntry for a file identified by its relative path.
/// </summary>
/// <param name="path">Relative path of a file on disk</param>
/// <param name="version">Version number of the system asking for an entry to distinguish it from previous incompatible entries. (Optional)</param>
/// <returns>CacheEntry representing a file on disk.</returns>
CacheEntry GetCacheEntry(string path, int version = 1);
/// <summary>
/// Gets a CacheEntry for an object identified by an Object Identifier.
/// </summary>
/// <param name="objectID">Object identifier for an object</param>
/// <param name="version">Version number of the system asking for an entry to distinguish it from previous incompatible entries. (Optional)</param>
/// <returns>CacheEntry representing an object identifier.</returns>
CacheEntry GetCacheEntry(ObjectIdentifier objectID, int version = 1);
/// <summary>
/// Gets a CacheEntry for a scripting type by a System.Type.
/// </summary>
/// <param name="type">System.Type for a scripting type</param>
/// <param name="version">Version number of the system asking for an entry to distinguish it from previous incompatible entries. (Optional)</param>
/// <returns>CacheEntry representing an object identifier.</returns>
CacheEntry GetCacheEntry(Type type, int version = 1);
/// <summary>
/// Checks if the CachedInfo passed in needs to be rebuilt
/// </summary>
/// <param name="info">Cached Info to check</param>
/// <returns><c>true</c> if the cached info needs to be rebuilt; otherwise, <c>false</c>.</returns>
bool HasAssetOrDependencyChanged(CachedInfo info);
/// <summary>
/// Returns the path where info data can be saved in the cache
/// </summary>
/// <param name="entry">Cache entry to get the path</param>
/// <returns>Path on disk where to save cached info</returns>
string GetCachedInfoFile(CacheEntry entry);
/// <summary>
/// Returns the path where artifact data can be saved in the cache
/// </summary>
/// <param name="entry">Cache entry to get the path</param>
/// <returns>Path on disk where to save cached artifacts</returns>
string GetCachedArtifactsDirectory(CacheEntry entry);
/// <summary>
/// Loads a set of CachedInfos from the cache
/// </summary>
/// <param name="entries">List of cache entries to load</param>
/// <param name="cachedInfos">Out list of cached infos loaded</param>
void LoadCachedData(IList<CacheEntry> entries, out IList<CachedInfo> cachedInfos);
/// <summary>
/// Saves a set of CachedInfos to the cache
/// </summary>
/// <param name="infos">List of cached infos to save</param>
void SaveCachedData(IList<CachedInfo> infos);
}
}