//------------------------------------------------------------
// 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();
}
}