DBFSRequestPackageVersionOperation.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. 
  2. namespace YooAsset
  3. {
  4. internal class DBFSRequestPackageVersionOperation : FSRequestPackageVersionOperation
  5. {
  6. private enum ESteps
  7. {
  8. None,
  9. RequestPackageVersion,
  10. Done,
  11. }
  12. private readonly DefaultBuildinFileSystem _fileSystem;
  13. private RequestBuildinPackageVersionOperation _requestBuildinPackageVersionOp;
  14. private ESteps _steps = ESteps.None;
  15. internal DBFSRequestPackageVersionOperation(DefaultBuildinFileSystem fileSystem)
  16. {
  17. _fileSystem = fileSystem;
  18. }
  19. internal override void InternalStart()
  20. {
  21. _steps = ESteps.RequestPackageVersion;
  22. }
  23. internal override void InternalUpdate()
  24. {
  25. if (_steps == ESteps.None || _steps == ESteps.Done)
  26. return;
  27. if (_steps == ESteps.RequestPackageVersion)
  28. {
  29. if (_requestBuildinPackageVersionOp == null)
  30. {
  31. _requestBuildinPackageVersionOp = new RequestBuildinPackageVersionOperation(_fileSystem);
  32. _requestBuildinPackageVersionOp.StartOperation();
  33. AddChildOperation(_requestBuildinPackageVersionOp);
  34. }
  35. _requestBuildinPackageVersionOp.UpdateOperation();
  36. if (_requestBuildinPackageVersionOp.IsDone == false)
  37. return;
  38. if (_requestBuildinPackageVersionOp.Status == EOperationStatus.Succeed)
  39. {
  40. _steps = ESteps.Done;
  41. PackageVersion = _requestBuildinPackageVersionOp.PackageVersion;
  42. Status = EOperationStatus.Succeed;
  43. }
  44. else
  45. {
  46. _steps = ESteps.Done;
  47. Status = EOperationStatus.Failed;
  48. Error = _requestBuildinPackageVersionOp.Error;
  49. }
  50. }
  51. }
  52. }
  53. }