//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 loyalsoft. All rights reserved. // Homepage: http://www.game7000.com/ // Feedback: http://www.game7000.com/ //------------------------------------------------------------ using System; using System.Collections.Generic; namespace GameFramework.Download { /// /// 下载管理器接口。 /// public interface IDownloadManager { /// /// 获取或设置下载是否被暂停。 /// bool Paused { get; set; } /// /// 获取下载代理总数量。 /// int TotalAgentCount { get; } /// /// 获取可用下载代理数量。 /// int FreeAgentCount { get; } /// /// 获取工作中下载代理数量。 /// int WorkingAgentCount { get; } /// /// 获取等待下载任务数量。 /// int WaitingTaskCount { get; } /// /// 获取或设置将缓冲区写入磁盘的临界大小。 /// int FlushSize { get; set; } /// /// 获取或设置下载超时时长,以秒为单位。 /// float Timeout { get; set; } /// /// 获取当前下载速度。 /// float CurrentSpeed { get; } /// /// 下载开始事件。 /// event EventHandler DownloadStart; /// /// 下载更新事件。 /// event EventHandler DownloadUpdate; /// /// 下载成功事件。 /// event EventHandler DownloadSuccess; /// /// 下载失败事件。 /// event EventHandler DownloadFailure; /// /// 增加下载代理辅助器。 /// /// 要增加的下载代理辅助器。 void AddDownloadAgentHelper(IDownloadAgentHelper downloadAgentHelper); /// /// 根据下载任务的序列编号获取下载任务的信息。 /// /// 要获取信息的下载任务的序列编号。 /// 下载任务的信息。 TaskInfo GetDownloadInfo(int serialId); /// /// 根据下载任务的标签获取下载任务的信息。 /// /// 要获取信息的下载任务的标签。 /// 下载任务的信息。 TaskInfo[] GetDownloadInfos(string tag); /// /// 根据下载任务的标签获取下载任务的信息。 /// /// 要获取信息的下载任务的标签。 /// 下载任务的信息。 void GetDownloadInfos(string tag, List results); /// /// 获取所有下载任务的信息。 /// /// 所有下载任务的信息。 TaskInfo[] GetAllDownloadInfos(); /// /// 获取所有下载任务的信息。 /// /// 所有下载任务的信息。 void GetAllDownloadInfos(List results); /// /// 增加下载任务。 /// /// 下载后存放路径。 /// 原始下载地址。 /// 新增下载任务的序列编号。 int AddDownload(string downloadPath, string downloadUri); /// /// 增加下载任务。 /// /// 下载后存放路径。 /// 原始下载地址。 /// 下载任务的标签。 /// 新增下载任务的序列编号。 int AddDownload(string downloadPath, string downloadUri, string tag); /// /// 增加下载任务。 /// /// 下载后存放路径。 /// 原始下载地址。 /// 下载任务的优先级。 /// 新增下载任务的序列编号。 int AddDownload(string downloadPath, string downloadUri, int priority); /// /// 增加下载任务。 /// /// 下载后存放路径。 /// 原始下载地址。 /// 用户自定义数据。 /// 新增下载任务的序列编号。 int AddDownload(string downloadPath, string downloadUri, object userData); /// /// 增加下载任务。 /// /// 下载后存放路径。 /// 原始下载地址。 /// 下载任务的标签。 /// 下载任务的优先级。 /// 新增下载任务的序列编号。 int AddDownload(string downloadPath, string downloadUri, string tag, int priority); /// /// 增加下载任务。 /// /// 下载后存放路径。 /// 原始下载地址。 /// 下载任务的标签。 /// 用户自定义数据。 /// 新增下载任务的序列编号。 int AddDownload(string downloadPath, string downloadUri, string tag, object userData); /// /// 增加下载任务。 /// /// 下载后存放路径。 /// 原始下载地址。 /// 下载任务的优先级。 /// 用户自定义数据。 /// 新增下载任务的序列编号。 int AddDownload(string downloadPath, string downloadUri, int priority, object userData); /// /// 增加下载任务。 /// /// 下载后存放路径。 /// 原始下载地址。 /// 下载任务的标签。 /// 下载任务的优先级。 /// 用户自定义数据。 /// 新增下载任务的序列编号。 int AddDownload(string downloadPath, string downloadUri, string tag, int priority, object userData); /// /// 根据下载任务的序列编号移除下载任务。 /// /// 要移除下载任务的序列编号。 /// 是否移除下载任务成功。 bool RemoveDownload(int serialId); /// /// 根据下载任务的标签移除下载任务。 /// /// 要移除下载任务的标签。 /// 移除下载任务的数量。 int RemoveDownloads(string tag); /// /// 移除所有下载任务。 /// /// 移除下载任务的数量。 int RemoveAllDownloads(); } }