39 lines
1.0 KiB
C#
39 lines
1.0 KiB
C#
using System;
|
|
using System.Threading;
|
|
|
|
namespace AssetStoreTools.Uploader.Data
|
|
{
|
|
internal class OngoingUpload : IDisposable
|
|
{
|
|
private CancellationTokenSource _cancellationTokenSource;
|
|
|
|
public string VersionId { get; }
|
|
public string PackageName { get; }
|
|
public float Progress { get; private set; }
|
|
public CancellationToken CancellationToken => _cancellationTokenSource.Token;
|
|
|
|
public OngoingUpload(string versionId, string packageName)
|
|
{
|
|
VersionId = versionId;
|
|
PackageName = packageName;
|
|
Progress = 0f;
|
|
_cancellationTokenSource = new CancellationTokenSource();
|
|
}
|
|
|
|
public void Cancel()
|
|
{
|
|
_cancellationTokenSource?.Cancel();
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
_cancellationTokenSource?.Dispose();
|
|
_cancellationTokenSource = null;
|
|
}
|
|
|
|
public void UpdateProgress(float newProgress)
|
|
{
|
|
Progress = newProgress;
|
|
}
|
|
}
|
|
} |