Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ppy
GitHub Repository: ppy/osu
Path: blob/master/osu.Game/Online/API/Requests/APIUploadRequest.cs
4397 views
// Copyright (c) ppy Pty Ltd <[email protected]>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.

using System.Diagnostics;
using osu.Framework.IO.Network;

namespace osu.Game.Online.API.Requests
{
    public abstract class APIUploadRequest : APIRequest
    {
        protected override WebRequest CreateWebRequest()
        {
            var request = base.CreateWebRequest();
            request.UploadProgress += onUploadProgress;
            return request;
        }

        private void onUploadProgress(long current, long total)
        {
            Debug.Assert(API != null);
            API.Schedule(() => Progressed?.Invoke(current, total));
        }

        public event APIProgressHandler? Progressed;
    }
}