BBADownloaderCommon.h 2.91 KB
//
//  BBADownloaderCommon.h
//  ApsManager
//
//  Created by ZhangYonglu on 2018/10/22.
//  Copyright © 2018年 Baidu. All rights reserved.
//

#ifndef BBADownloaderCommon_h
#define BBADownloaderCommon_h
#import <UIKit/UIKit.h>

@protocol BBADownloaderItemProtocol;

// 状态变更回调
typedef void(^BBADownloaderStatusChangedHandler)(id<BBADownloaderItemProtocol> downloadItem);

// 进度回调
typedef void(^BBADownloaderProgressChangedHandler)(id<BBADownloaderItemProtocol> downloadItem);

typedef NS_ENUM(NSUInteger, EBBADownloaderResultCode){
    EBBADownloaderResultCodeNone = 0,
    EBBADownloaderResultCodeCanceled ,                        //1.下载被取消
    EBBADownloaderResultCodeNetworkError ,                    //2.下载文件包数据网络错误
    EBBADownloaderResultCodeParametersInvalid ,               //3.下载请求参数错误
    EBBADownloaderResultCodeStorePathDumplicated ,            //4.下载路径重复
    EBBADownloaderResultCodeSuccess                           //5.下载成功
};

typedef NS_ENUM(NSInteger, EBBADownloaderDetailResultCode) {
    EBBADownloaderDetailResultCodeResourceError,        // 下载资源出错
    EBBADownloaderDetailResultCodeServerError,          // 服务器出问题啦
    EBBADownloaderDetailResultCodeServerTimeOut,        // 服务器响应超时
    EBBADownloaderDetailResultCodeServerNoResponse,     // 服务器无法响应
    EBBADownloaderDetailResultCodeResourceIllegal,      // 资源不符合法律规定
    EBBADownloaderDetailResultCodeParametersInvalid,    // 下载参数错误
    EBBADownloaderDetailResultCodeOperationNotReady,    // 任务没有ready
    EBBADownloaderDetailResultCodeNetworkError,         // 下载文件包数据网络错误
    EBBADownloaderDetailResultCodeOutOfSpaceError,      // 存储空间不足
    EBBADownloaderDetailResultCodeUnSupportedURL,       // 链接出问题了
    EBBADownloaderDetailResultCodeFileDoesNotExist,     // 资源不存在
    EBBADownloaderDetailResultCodeBadServerResponse,    // 服务器返回错误
};

// 下载任务状态
typedef NS_ENUM(NSUInteger, EBBADownloaderStatus){
    EBBADownloaderStatusWaiting = 0,      // 等待下载
    EBBADownloaderStatusStarted = 1,        // 开始下载
    EBBADownloaderStatusRunning = 2,      // 下载中
    EBBADownloaderStatusSuspended = 3,    // 暂停中
    EBBADownloaderStatusCompleted = 4,    // 下载完成
    EBBADownloaderStatusFailed  = 5,      // 下载失败(异常)
    EBBADownloaderStatusCancel = 6,       // 取消下载
};

// 下载优先级
typedef NS_ENUM(NSInteger, EBBADownloaderPriority) {
    EBBADownloaderPriorityDefault = 0,              //  默认优先级
    EBBADownloaderPriorityeBackground = 1,          //  静默下载任务
    EBBADownloaderPriorityUserInteractive = 2,      //  视觉交互相关下载任务
    EBBADownloaderPrioritySpecial = 3               //  特殊下载任务
};

#endif /* BBADownloaderCommon_h */