using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using EQNetwork.Objects;
using EQNetwork.Utility;

namespace EQNetwork.Interfaces
{
    public partial interface IUploadService
    {
        EQTask Begin(UploadContext uploadContext, Action<Upload, EQException> onComplete);
        EQTask Complete(UploadContext uploadContext, Action<Upload, EQException> onComplete);
        EQTask ListUpload(UploadContext uploadContext, Action<Upload, EQException> onComplete);
        EQTask ListUploads(int preferredChunkSize, int numberOfChunks, Action<List<Upload>, EQException> onComplete);
        EQTask UploadChunk(UploadContext uploadContext, long chunkOffset, long chunkSize, FileUploadSpec chunk, Action<long, long, EQException> onComplete);
        EQTask CancelUpload(UploadContext uploadContext, Action<Upload, EQException> onComplete);
        EQTask CreateContentFile(ContentFile contentFile, UploadContext uploadContext, Action<ContentFile, EQException> onComplete);
    }
}
