using System;
namespace YooAsset
{
///
/// 下载后台接口
///
internal interface IDownloadBackend : IDisposable
{
///
/// 后台名称(用于日志与调试)
///
string Name { get; }
///
/// 驱动更新
///
///
/// 部分第三方网络库需要在 Unity 主线程中周期性调用 Update 进行驱动。
/// 不需要驱动的后台可实现为空方法。
///
void Update();
///
/// 创建 HEAD 请求
///
///
/// 仅获取响应头信息,不下载实际内容。
/// 用于检查资源是否存在、获取资源大小、检查缓存有效性等场景。
///
/// 数据请求参数
/// HEAD 请求实例
IDownloadHeadRequest CreateHeadRequest(DownloadDataRequestArgs args);
///
/// 创建文件下载请求
///
/// 文件下载参数
/// 文件下载请求实例
IDownloadFileRequest CreateFileRequest(DownloadFileRequestArgs args);
///
/// 创建内存下载请求(字节数组)
///
/// 数据下载参数
/// 字节下载请求实例
IDownloadBytesRequest CreateBytesRequest(DownloadDataRequestArgs args);
///
/// 创建文本下载请求
///
/// 数据下载参数
/// 文本下载请求实例
IDownloadTextRequest CreateTextRequest(DownloadDataRequestArgs args);
///
/// 创建 AssetBundle 下载请求
///
/// AssetBundle 下载参数
/// AssetBundle 下载请求实例
IDownloadAssetBundleRequest CreateAssetBundleRequest(DownloadAssetBundleRequestArgs args);
///
/// 创建模拟下载请求
///
///
/// 用于编辑器模式下模拟下载进度,不进行实际网络请求。
/// 可用于测试下载流程和 UI 展示。
///
/// 模拟下载参数
/// 模拟下载请求实例
IDownloadFileRequest CreateSimulateRequest(DownloadSimulateRequestArgs args);
}
}