private List <PoolCache> LoadCurrentCache() { PoolManagerCache allCache = LoadAllCache(); string currentCacheId = GetCurrentCacheId(); return(allCache.GetPoolCache(currentCacheId)); }
// ////////////////////////////////////////////////////////////////////////////////// // 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); }
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"); } }
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."); } }
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); }
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); }
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); } } }