コード例 #1
0
        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]);
        }
コード例 #2
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();
        }
コード例 #3
0
        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]);
        }
コード例 #4
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);
        }
コード例 #5
0
        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);
        }