DWSFSRequestPackageVersionOperation.cs 2.1 KB

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