67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using Codice.CM.Common;
 | |
| 
 | |
| namespace Unity.PlasticSCM.Editor.AssetsOverlays.Cache
 | |
| {
 | |
|     internal interface IAssetStatusCache
 | |
|     {
 | |
|         AssetStatus GetStatus(string fullPath);
 | |
|         LockStatusData GetLockStatusData(string fullPath);
 | |
|         void Clear();
 | |
|         void ClearLocks();
 | |
|         void Cancel();
 | |
|     }
 | |
| 
 | |
|     internal class AssetStatusCache : IAssetStatusCache
 | |
|     {
 | |
|         internal AssetStatusCache(
 | |
|             WorkspaceInfo wkInfo,
 | |
|             bool isGluonMode)
 | |
|         {
 | |
|             mLocalStatusCache = new LocalStatusCache(wkInfo);
 | |
|             mRemoteStatusCache = new RemoteStatusCache(wkInfo, isGluonMode);
 | |
|             mLockStatusCache = new LockStatusCache(wkInfo);
 | |
|         }
 | |
| 
 | |
|         AssetStatus IAssetStatusCache.GetStatus(string fullPath)
 | |
|         {
 | |
|             AssetStatus localStatus = mLocalStatusCache.GetStatus(fullPath);
 | |
| 
 | |
|             if (!ClassifyAssetStatus.IsControlled(localStatus))
 | |
|                 return localStatus;
 | |
| 
 | |
|             AssetStatus remoteStatus = mRemoteStatusCache.GetStatus(fullPath);
 | |
| 
 | |
|             AssetStatus lockStatus = mLockStatusCache.GetStatus(fullPath);
 | |
| 
 | |
|             return localStatus | remoteStatus | lockStatus;
 | |
|         }
 | |
| 
 | |
|         LockStatusData IAssetStatusCache.GetLockStatusData(string fullPath)
 | |
|         {
 | |
|             return mLockStatusCache.GetLockStatusData(fullPath);
 | |
|         }
 | |
| 
 | |
|         void IAssetStatusCache.Clear()
 | |
|         {
 | |
|             mLocalStatusCache.Clear();
 | |
|             mRemoteStatusCache.Clear();
 | |
|             mLockStatusCache.Clear();
 | |
|         }
 | |
| 
 | |
|         void IAssetStatusCache.ClearLocks()
 | |
|         {
 | |
|             mLockStatusCache.Clear();
 | |
|         }
 | |
| 
 | |
|         void IAssetStatusCache.Cancel()
 | |
|         {
 | |
|             mRemoteStatusCache.Cancel();
 | |
|             mLockStatusCache.Cancel();
 | |
|         }
 | |
| 
 | |
|         readonly LocalStatusCache mLocalStatusCache;
 | |
|         readonly RemoteStatusCache mRemoteStatusCache;
 | |
|         readonly LockStatusCache mLockStatusCache;
 | |
|     }
 | |
| }
 |