// // RQDownloadManager.h // TEST // // Created by 张嵘 on 2018/10/22. // Copyright © 2018 张嵘. All rights reserved. // #import #import "RQDownloadHeader.h" NS_ASSUME_NONNULL_BEGIN typedef NS_ENUM(NSUInteger, RQOperationType) { RQOperationType_startAll, RQOperationType_suspendAll , RQOperationType_resumeAll, RQOperationType_stopAll }; #define kRQDownloadManager [RQDownloadManager sharedManager] @class RQDownloadModel; @interface RQDownloadManager : NSObject @property (nonatomic, strong, readonly) NSMutableArray * downloadModels; @property (nonatomic, strong, readonly) NSMutableArray * completeModels; @property (nonatomic, strong, readonly) NSMutableArray * downloadingModels; @property (nonatomic, strong, readonly) NSMutableArray * pauseModels; @property (nonatomic, strong, readonly) NSMutableArray * waitModels; @property (nonatomic, assign) NSInteger maxConcurrentOperationCount; /** 是否禁用进度打印日志 */ @property (readonly, nonatomic, assign) BOOL enableProgressLog; #pragma mark - 单例方法 + (instancetype)sharedManager; /** * 禁止打印进度日志 */ - (void)enableProgressLog:(BOOL)enable; /** * 获取下载模型 */ - (RQDownloadModel *)downloadModelWithUrl:(NSString *)url; #pragma mark - 单任务下载控制 /** * 开始下载 */ - (void)startWithDownloadModel:(RQDownloadModel *)model; /** * 暂停下载 */ - (void)suspendWithDownloadModel:(RQDownloadModel *)model; /** * 恢复下载 */ - (void)resumeWithDownloadModel:(RQDownloadModel *)model; /** * 取消下载 (取消下载后 operation将从队列中移除 并 移除下载模型和对应文件) */ - (void)stopWithDownloadModel:(RQDownloadModel *)model; #pragma mark - 多任务下载控制 /** * 批量下载操作 */ - (void)startWithDownloadModels:(NSArray *)downloadModels; /** * 暂停所有下载任务 */ - (void)suspendAll; /** * 恢复下载任务(进行中、已完成、等待中除外) */ - (void)resumeAll; /** * 停止并删除下载任务 */ - (void)stopAll; @end NS_ASSUME_NONNULL_END