using System;
using System.Collections.Generic;
using Vinno.vCloud.Common.Storage.ObjectStorageInfo.Solid;
using Vinno.vCloud.Protocol.Infrastructures.Storage;
namespace Vinno.vCloud.Common.Storage.ObjectStorageInfo.Interface
{
public interface IUFileStorageHelper : IDisposable
{
///
/// Leaf代理
///
ILeafAgency LeafAgency { get; }
///
/// 下载单个文件
///
/// 文件下载信息
/// 文件所在节点
/// 进度回调
///
bool DownloadFile(ObjectFileDownloadInfo fileDownloadInfo, StorageNodeType storageNode, Action progressCallback = null);
///
/// 下载单个文件
///
/// 下载信息
/// 文件所在节点
/// Range开始位置
/// Range结束位置
/// 进度回调
///
bool DownloadFile(ObjectFileDownloadInfo fileDownloadInfo, StorageNodeType storageNode, long from, long to, Action progressCallback = null);
///
/// 获取文件
///
/// 文件下载信息
/// 文件所在节点
/// 进度回调
///
byte[] GetFile(ObjectFileDownloadInfo fileDownloadInfo, StorageNodeType storageNode, Action progressCallback = null);
///
/// 获取文件
///
/// 下载信息
/// 文件所在节点
/// Range开始位置
/// Range结束位置
/// 进度回调
///
byte[] GetFile(ObjectFileDownloadInfo fileDownloadInfo, StorageNodeType storageNode, long from, long to, Action progressCallback = null);
///
/// 获取更新文件(批量)
///
///
///
///
///
bool DownloadFiles(string tempFolder, StorageNodeType storageNode, List fileList, Action progressCallback = null);
///
/// 批量删除文件
///
///
///
///
///
bool DeleteFiles(StorageNodeType storageNode, List fileList, Action progressCallback = null);
///
/// 查询文件
///
///
///
///
ObjectFileItemList SearchFiles(string fileQuery, StorageNodeType storageNode);
///
/// 批量获取文件
///
/// 下载信息集合
/// 文件所在节点
/// 进度回调
///
IEnumerable GetFiles(List fileDownloadInfoList, StorageNodeType storageNode, Action progressCallback = null);
}
}