A game about forced loneliness, made by TACStudios
1using Codice.CM.Common; 2using Unity.PlasticSCM.Editor.AssetUtils; 3 4namespace Unity.PlasticSCM.Editor.AssetsOverlays.Cache 5{ 6 internal interface IAssetStatusCache 7 { 8 AssetStatus GetStatus(string fullPath); 9 LockStatusData GetLockStatusData(string fullPath); 10 void Clear(); 11 void ClearLocks(); 12 void Cancel(); 13 } 14 15 internal class AssetStatusCache : IAssetStatusCache 16 { 17 internal AssetStatusCache( 18 WorkspaceInfo wkInfo, 19 bool isGluonMode) 20 { 21 mLocalStatusCache = new LocalStatusCache(); 22 23 mRemoteStatusCache = new RemoteStatusCache( 24 wkInfo, 25 isGluonMode, 26 ProjectWindow.Repaint, 27 RepaintInspector.All); 28 29 mLockStatusCache = new LockStatusCache( 30 wkInfo, 31 ProjectWindow.Repaint, 32 RepaintInspector.All); 33 } 34 35 AssetStatus IAssetStatusCache.GetStatus(string fullPath) 36 { 37 AssetStatus localStatus = mLocalStatusCache.GetStatus(fullPath); 38 39 if (!ClassifyAssetStatus.IsControlled(localStatus)) 40 return localStatus; 41 42 AssetStatus remoteStatus = mRemoteStatusCache.GetStatus(fullPath); 43 44 AssetStatus lockStatus = mLockStatusCache.GetStatus(fullPath); 45 46 return localStatus | remoteStatus | lockStatus; 47 } 48 49 LockStatusData IAssetStatusCache.GetLockStatusData(string fullPath) 50 { 51 return mLockStatusCache.GetLockStatusData(fullPath); 52 } 53 54 void IAssetStatusCache.Clear() 55 { 56 mLocalStatusCache.Clear(); 57 mRemoteStatusCache.Clear(); 58 mLockStatusCache.Clear(); 59 } 60 61 void IAssetStatusCache.ClearLocks() 62 { 63 mLockStatusCache.Clear(); 64 } 65 66 void IAssetStatusCache.Cancel() 67 { 68 mRemoteStatusCache.Cancel(); 69 mLockStatusCache.Cancel(); 70 } 71 72 readonly LocalStatusCache mLocalStatusCache; 73 readonly RemoteStatusCache mRemoteStatusCache; 74 readonly LockStatusCache mLockStatusCache; 75 } 76}