namespace YooAsset
{
internal interface IFileSystem
{
///
/// 包裹名称
///
string PackageName { get; }
///
/// 文件访问权限
///
EFileAccess FileSystemAccess { get; }
///
/// 文件根目录
///
string FileRoot { get; }
///
/// 文件数量
///
int FileCount { get; }
///
/// 初始化缓存系统
///
FSInitializeFileSystemOperation InitializeFileSystemAsync();
///
/// 加载包裹清单
///
FSLoadPackageManifestOperation LoadPackageManifestAsync(string packageVersion, int timeout);
///
/// 查询最新的版本
///
FSRequestPackageVersionOperation RequestPackageVersionAsync(bool appendTimeTicks, int timeout);
///
/// 清空所有的文件
///
FSClearAllBundleFilesOperation ClearAllBundleFilesAsync();
///
/// 清空未使用的文件
///
FSClearUnusedBundleFilesOperation ClearUnusedBundleFilesAsync(PackageManifest manifest);
///
/// 下载远端文件
///
FSDownloadFileOperation DownloadFileAsync(PackageBundle bundle, DownloadParam param);
///
/// 加载Bundle文件
///
FSLoadBundleOperation LoadBundleFile(PackageBundle bundle);
///
/// 卸载Bundle文件
///
void UnloadBundleFile(PackageBundle bundle, object result);
///
/// 设置自定义参数
///
void SetParameter(string name, object value);
///
/// 创建缓存系统
///
void OnCreate(string packageName, string rootDirectory);
///
/// 更新文件系统
///
void OnUpdate();
///
/// 查询文件归属
///
bool Belong(PackageBundle bundle);
///
/// 查询文件是否存在
///
bool Exists(PackageBundle bundle);
///
/// 是否需要下载
///
bool NeedDownload(PackageBundle bundle);
///
/// 是否需要解压
///
bool NeedUnpack(PackageBundle bundle);
///
/// 是否需要导入
///
bool NeedImport(PackageBundle bundle);
}
}