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

using EQNetwork.Objects;
using EQNetwork.Interfaces;
using EQNetwork.Utility;

namespace EQNetwork.Services
{
    public partial class UploadService : IUploadService
    {
        private EQProcess _eq;
        public UploadService(EQProcess eq)
        {
            _eq = eq;
        }

        private IEQApiService _api { get { return _eq.EQApiService; } }

        public Upload Begin(UploadContext uploadContext) { return _api.Upload_Begin(uploadContext); }
        public Upload Complete(UploadContext uploadContext) { return _api.Upload_Complete(uploadContext); }
        public Upload ListUpload(UploadContext uploadContext) { return _api.Upload_ListUpload(uploadContext); }
        public List<Upload> ListUploads(int preferredChunkSize, int numberOfChunks) { return _api.Upload_ListUploads(preferredChunkSize, numberOfChunks); }
        public long UploadChunk(out long total, UploadContext uploadContext, long chunkOffset, long chunkSize, FileUploadSpec chunk) { return _api.Upload_Chunk(out total, uploadContext, chunkOffset, chunkSize, chunk); }
        public Upload CancelUpload(UploadContext uploadContext) { return _api.Upload_CancelUpload(uploadContext); }
        public void CreateContentFile(ref ContentFile contentFile, UploadContext uploadContext) { _api.Upload_CreateContentFile(ref contentFile, uploadContext); }
    }
}
