Пример #1
0
        private List <PoolCache> LoadCurrentCache()
        {
            PoolManagerCache allCache = LoadAllCache();

            string currentCacheId = GetCurrentCacheId();

            return(allCache.GetPoolCache(currentCacheId));
        }
Пример #2
0
        // //////////////////////////////////////////////////////////////////////////////////
        // New Chace system

        /// <summary>
        /// Loads cache from disc and initializing current scene's cache id.
        /// </summary>
        private void LoadCache()
        {
            cache = Serializer.DeserializeFromPDP <PoolManagerCache>(CACHE_FILE_NAME, logIfFileNotExists: false);

            string sceneMetaFile = Serializer.LoadTextFileAtPath(SceneManager.GetActiveScene().path + ".meta");

            int startIndex = sceneMetaFile.IndexOf("guid: ") + "guid: ".Length;
            int finalIndex = sceneMetaFile.LastIndexOf("timeCreated");

            currentCacheId = sceneMetaFile.Substring(startIndex, finalIndex - startIndex);
        }
Пример #3
0
        public void ClearCurrentChache()
        {
            if (EditorUtility.DisplayDialog("Delete all cache", "All cache for current scene will be cleared", "Delete", "Cancel"))
            {
                PoolManagerCache allCache = LoadAllCache();

                allCache.DeleteCache(GetCurrentCacheId());
                Serializer.SerializeToPDP(allCache, PoolManager.CACHE_FILE_NAME);

                Debug.Log("Cache for current scene cleared");
            }
        }
Пример #4
0
        private void DisplayCacheState()
        {
            List <PoolCache> currentLevelCache = LoadCurrentCache();

            if (!currentLevelCache.IsNullOrEmpty())
            {
                List <PoolCache> cacheToDelete = new List <PoolCache>();

                string cacheInfo = string.Empty;
                foreach (PoolCache poolCache in currentLevelCache)
                {
                    // if pool not exists - delete it's cache
                    int index = poolManagerRef.pools.FindIndex(x => x.name == poolCache.poolName);
                    if (index == -1)
                    {
                        cacheToDelete.Add(poolCache);
                    }
                    // otherwise adding pool and cache stats to log
                    else
                    {
                        cacheInfo += poolCache.poolName + "\tcurrent size: " + poolManagerRef.pools[index].poolSize + "\tcached size: " + poolCache.poolSize + "\t(updates count: " + poolCache.updatesCount + ")\n";
                    }
                }

                // deleting all obsolete cache
                if (cacheToDelete.Count > 0)
                {
                    if (cacheInfo != string.Empty)
                    {
                        cacheInfo += "\n";
                    }

                    foreach (PoolCache currentCache in cacheToDelete)
                    {
                        currentLevelCache.Remove(currentCache);
                        cacheInfo += "deleted cache for unexisting pool: \"" + currentCache.poolName + "\"\n";
                    }

                    PoolManagerCache allCache = LoadAllCache();

                    allCache.UpdateCache(GetCurrentCacheId(), currentLevelCache);
                    Serializer.SerializeToPDP(allCache, PoolManager.CACHE_FILE_NAME);
                }

                Debug.Log(cacheInfo);
            }
            else
            {
                Debug.Log("[PoolManager] There's no saved cache for current scene.");
            }
        }
Пример #5
0
        private void UpdateIgnoreCacheStateOfPool(string poolName, bool newState)
        {
            List <PoolCache> poolCacheList = LoadCurrentCache();

            int index = poolCacheList.FindIndex(x => x.poolName == poolName);

            if (index != -1)
            {
                poolCacheList[index].ignoreCache = newState;
            }

            PoolManagerCache allCache = LoadAllCache();

            allCache.UpdateCache(GetCurrentCacheId(), poolCacheList);
            Serializer.SerializeToPDP(allCache, PoolManager.CACHE_FILE_NAME);
        }
Пример #6
0
        private void RenameCachedPool(string oldName, string newName)
        {
            List <PoolCache> poolCacheList = LoadCurrentCache();

            int index = poolCacheList.FindIndex(x => x.poolName == oldName);

            if (index != -1)
            {
                poolCacheList[index].poolName = newName;
            }

            PoolManagerCache allCache = LoadAllCache();

            allCache.UpdateCache(GetCurrentCacheId(), poolCacheList);
            Serializer.SerializeToPDP(allCache, PoolManager.CACHE_FILE_NAME);
        }
Пример #7
0
        private void ClearObsoleteCache()
        {
            List <PoolCache> currentLevelCache = LoadCurrentCache();

            if (currentLevelCache != null)
            {
                List <PoolCache> cacheToDelete = new List <PoolCache>();

                foreach (PoolCache poolCache in currentLevelCache)
                {
                    // if pool not exists - delete it's cache
                    int index = poolManagerRef.pools.FindIndex(x => x.name == poolCache.poolName);
                    if (index == -1)
                    {
                        cacheToDelete.Add(poolCache);
                    }
                }

                // deleting all obsolete cache
                if (cacheToDelete.Count > 0)
                {
                    string updateLog = "";

                    foreach (PoolCache currentCache in cacheToDelete)
                    {
                        currentLevelCache.Remove(currentCache);
                        updateLog += "deleted cache for unexisting pool: \"" + currentCache.poolName + "\"\n";
                    }

                    Debug.Log(updateLog);
                    PoolManagerCache allCache = LoadAllCache();

                    allCache.UpdateCache(GetCurrentCacheId(), currentLevelCache);
                    Serializer.SerializeToPDP(allCache, PoolManager.CACHE_FILE_NAME);
                }
            }
        }