static protected CachedInfo LoadCachedInfoForGUID(BuildCache cache, GUID guid) { IList <CachedInfo> infos; CacheEntry entry1 = cache.GetCacheEntry(guid); cache.LoadCachedData(new List <CacheEntry>() { entry1 }, out infos); return(infos[0]); }
static protected void StoreDataInCacheWithGUID(BuildCache cache, GUID guid, object data, GUID depGUID = new GUID()) { List <CacheEntry> deps = new List <CacheEntry>(); if (!depGUID.Empty()) { deps.Add(cache.GetCacheEntry(depGUID)); } CacheEntry entry1 = cache.GetCacheEntry(guid); CachedInfo info = new CachedInfo(); info.Asset = entry1; info.Dependencies = deps.ToArray(); info.Data = new object[] { data }; cache.SaveCachedData(new List <CachedInfo>() { info }); cache.SyncPendingSaves(); }
static CachedInfo LoadTargetCachedInfo(GUID guid, BuildTarget target) { var cache = new BuildCache(); var entries = new List <CacheEntry> { cache.GetCacheEntry(guid, AssetBundleBuildVersion) }; cache.LoadCachedData(entries, out IList <CachedInfo> cachedInfos); if (cachedInfos[0] == null) { cachedInfos[0] = CalculateTargetCachedInfo(entries[0], target); // cache.SaveCachedData(cachedInfos); // TODO: Disabled because we have file contention as "Save" is async only with no wait functionality } return(cachedInfos[0]); }
public static Hash128 CalculateTargetHash(GUID guid, BuildTarget target) { // Always calculate & return the new hash // TODO: target is not taken into account, this will be included when sbp moves into the asset pipeline var cache = new BuildCache(); var cachedInfo = CalculateTargetCachedInfo(cache.GetCacheEntry(guid, AssetBundleBuildVersion), target, null); // TODO: Script Property dependency // TODO: SBP returns recursive dependencies which is too much for Live Link, this will need to be changed when sbp moves into asset pipeline var targetHash = cachedInfo.Asset.Hash; foreach (var dependency in cachedInfo.Dependencies) { var dependencyHash = dependency.Hash; HashUtilities.ComputeHash128(ref dependencyHash, ref targetHash); } return(targetHash); }
public void WhenLocalVersionChanges_AssetReturnsDifferentCacheEntry() { GUID guid = CreateTestTextAsset("mytext"); var entry1 = m_Cache.GetCacheEntry(guid, 2); var entry2 = m_Cache.GetCacheEntry(guid, 4); Assert.AreEqual(entry1.Guid, entry2.Guid); Assert.AreEqual(entry1.File, entry2.File); Assert.AreEqual(entry1.Type, entry2.Type); Assert.AreNotEqual(entry1.Version, entry2.Version); Assert.AreNotEqual(entry1.Hash, entry2.Hash); }