暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

AssetStatusCache.cs 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using Codice.CM.Common;
  2. using Unity.PlasticSCM.Editor.AssetUtils;
  3. namespace Unity.PlasticSCM.Editor.AssetsOverlays.Cache
  4. {
  5. internal interface IAssetStatusCache
  6. {
  7. AssetStatus GetStatus(string fullPath);
  8. LockStatusData GetLockStatusData(string fullPath);
  9. void Clear();
  10. }
  11. internal class AssetStatusCache : IAssetStatusCache
  12. {
  13. internal AssetStatusCache(
  14. WorkspaceInfo wkInfo,
  15. bool isGluonMode)
  16. {
  17. mLocalStatusCache = new LocalStatusCache(wkInfo);
  18. mRemoteStatusCache = new RemoteStatusCache(
  19. wkInfo,
  20. isGluonMode,
  21. ProjectWindow.Repaint,
  22. RepaintInspector.All);
  23. mLockStatusCache = new LockStatusCache(
  24. wkInfo,
  25. ProjectWindow.Repaint,
  26. RepaintInspector.All);
  27. }
  28. AssetStatus IAssetStatusCache.GetStatus(string fullPath)
  29. {
  30. AssetStatus localStatus = mLocalStatusCache.GetStatus(fullPath);
  31. if (!ClassifyAssetStatus.IsControlled(localStatus))
  32. return localStatus;
  33. AssetStatus remoteStatus = mRemoteStatusCache.GetStatus(fullPath);
  34. AssetStatus lockStatus = mLockStatusCache.GetStatus(fullPath);
  35. return localStatus | remoteStatus | lockStatus;
  36. }
  37. LockStatusData IAssetStatusCache.GetLockStatusData(string fullPath)
  38. {
  39. return mLockStatusCache.GetLockStatusData(fullPath);
  40. }
  41. void IAssetStatusCache.Clear()
  42. {
  43. mLocalStatusCache.Clear();
  44. mRemoteStatusCache.Clear();
  45. mLockStatusCache.Clear();
  46. }
  47. readonly LocalStatusCache mLocalStatusCache;
  48. readonly RemoteStatusCache mRemoteStatusCache;
  49. readonly LockStatusCache mLockStatusCache;
  50. }
  51. }