123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- //
- // RQDownloadModel.h
- // TEST
- //
- // Created by 张嵘 on 2018/10/22.
- // Copyright © 2018 张嵘. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- @class RQDownloadOperation;
- @class RQDownloadModel;
- //下载状态
- typedef NS_ENUM(NSUInteger, RQDownloadStatus) {
- RQDownloadStatus_None = 0, // 无状态
- RQDownloadStatus_Running = 1, // 正在下载
- RQDownloadStatus_Suspended = 2, // 下载暂停
- RQDownloadStatus_Completed = 3, // 下载完成
- RQDownloadStatus_Failed = 4, // 下载失败
- RQDownloadStatus_Waiting = 5, // 等待下载
- RQDownloadStatus_Cancel = 6, // 取消下载
- };
- //下载状态改变回调
- typedef void(^DownloadStatusChanged)(RQDownloadModel *downloadModel);
- //下载进度回调
- typedef void(^DownloadProgressChanged)(RQDownloadModel *downloadModel);
- @interface RQDownloadModel : NSObject
- @property (nonatomic, copy) NSString *videoId; // 视频ID
- @property (nonatomic, copy) NSString *subject; // 视频类型
- @property (nonatomic, copy) NSString *vid; // 唯一id标识
- @property (nonatomic, copy) NSString *urlString; // url
- @property (nonatomic, copy) NSString *title; // 标题
- @property (nonatomic, copy) NSString *imageUrl; // 图片
- @property (nonatomic, copy) NSString *content; // 内容
- @property (nonatomic, copy) NSString *destinationPath; // 下载完成路径
- @property (nonatomic, copy) NSString *fileName; // 文件名
- @property (nonatomic, copy) NSString *fileFormat; // 文件路径
- @property (nonatomic, strong) NSData *resumeData; // 下载的数据
- @property (nonatomic, assign) CGFloat progress; // 下载进度
- @property (nonatomic, assign) NSUInteger fileTotalSize; // 文件总大小
- @property (nonatomic, assign) NSUInteger fileDownloadSize; // 下载大小
- @property (nonatomic, assign) NSUInteger speed; // 下载速度
- @property (nonatomic, assign) RQDownloadStatus status; // 下载状态
- @property (nonatomic, copy) NSString *statusText; // 下载状态文字
- @property (nonatomic, assign) NSUInteger lastSpeedTime; // 上次计算速度时的时间戳
- @property (nonatomic, assign) NSUInteger intervalFileSize; // 计算速度时间内下载文件的大小
- @property (nonatomic, assign) NSUInteger lastStateTime; // 记录任务加入准备下载的时间(点击默认、暂停、失败状态),用于计算开始、停止任务的先后顺序
- @property (nonatomic, strong) RQDownloadOperation * operation; // 下载操作
- @property (nonatomic, copy) DownloadStatusChanged statusChanged; // 状态改变回调
- @property (nonatomic, copy) DownloadProgressChanged progressChanged; // 进度改变回调
- @property (nonatomic, assign) BOOL isLast; // 数组最后一个模型
- @property (nonatomic, strong) NSOutputStream *stream; // 输出流
- @property (nonatomic, assign) BOOL isFinished; // 下载完成
- @property (nonatomic, strong) RACSignal *progressChangedSignal;
- // 根据数据库查询结果初始化
- - (instancetype)initWithFMResultSet:(FMResultSet *)resultSet;
- @end
|