RQDownloadManager.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. //
  2. // RQDownloadManager.h
  3. // TEST
  4. //
  5. // Created by 张嵘 on 2018/10/22.
  6. // Copyright © 2018 张嵘. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "RQDownloadHeader.h"
  10. NS_ASSUME_NONNULL_BEGIN
  11. typedef NS_ENUM(NSUInteger, RQOperationType) {
  12. RQOperationType_startAll,
  13. RQOperationType_suspendAll ,
  14. RQOperationType_resumeAll,
  15. RQOperationType_stopAll
  16. };
  17. #define kRQDownloadManager [RQDownloadManager sharedManager]
  18. @class RQDownloadModel;
  19. @interface RQDownloadManager : NSObject
  20. @property (nonatomic, strong, readonly) NSMutableArray * downloadModels;
  21. @property (nonatomic, strong, readonly) NSMutableArray * completeModels;
  22. @property (nonatomic, strong, readonly) NSMutableArray * downloadingModels;
  23. @property (nonatomic, strong, readonly) NSMutableArray * pauseModels;
  24. @property (nonatomic, strong, readonly) NSMutableArray * waitModels;
  25. @property (nonatomic, assign) NSInteger maxConcurrentOperationCount;
  26. /** 是否禁用进度打印日志 */
  27. @property (readonly, nonatomic, assign) BOOL enableProgressLog;
  28. #pragma mark - 单例方法
  29. + (instancetype)sharedManager;
  30. /**
  31. * 禁止打印进度日志
  32. */
  33. - (void)enableProgressLog:(BOOL)enable;
  34. /**
  35. * 获取下载模型
  36. */
  37. - (RQDownloadModel *)downloadModelWithUrl:(NSString *)url;
  38. #pragma mark - 单任务下载控制
  39. /**
  40. * 开始下载
  41. */
  42. - (void)startWithDownloadModel:(RQDownloadModel *)model;
  43. /**
  44. * 暂停下载
  45. */
  46. - (void)suspendWithDownloadModel:(RQDownloadModel *)model;
  47. /**
  48. * 恢复下载
  49. */
  50. - (void)resumeWithDownloadModel:(RQDownloadModel *)model;
  51. /**
  52. * 取消下载 (取消下载后 operation将从队列中移除 并 移除下载模型和对应文件)
  53. */
  54. - (void)stopWithDownloadModel:(RQDownloadModel *)model;
  55. #pragma mark - 多任务下载控制
  56. /**
  57. * 批量下载操作
  58. */
  59. - (void)startWithDownloadModels:(NSArray<RQDownloadModel *> *)downloadModels;
  60. /**
  61. * 暂停所有下载任务
  62. */
  63. - (void)suspendAll;
  64. /**
  65. * 恢复下载任务(进行中、已完成、等待中除外)
  66. */
  67. - (void)resumeAll;
  68. /**
  69. * 停止并删除下载任务
  70. */
  71. - (void)stopAll;
  72. @end
  73. NS_ASSUME_NONNULL_END