TYDownloadSessionManager.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. //
  2. // TYDownloadSessionManager.h
  3. // TYDownloadManagerDemo
  4. //
  5. // Created by tany on 16/6/12.
  6. // Copyright © 2016年 tany. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "TYDownloadModel.h"
  10. #import "TYDownloadDelegate.h"
  11. /**
  12. * 下载管理类 封装NSURLSessionDownloadTask
  13. */
  14. @interface TYDownloadSessionManager : NSObject<NSURLSessionDownloadDelegate>
  15. // 下载代理
  16. @property (nonatomic,weak) id<TYDownloadDelegate> delegate;
  17. // 等待中的模型 只读
  18. @property (nonatomic, strong,readonly) NSMutableArray *waitingDownloadModels;
  19. // 下载中的模型 只读
  20. @property (nonatomic, strong,readonly) NSMutableArray *downloadingModels;
  21. // 最大下载数
  22. @property (nonatomic, assign) NSInteger maxDownloadCount;
  23. // 等待下载队列 先进先出 默认YES, 当NO时,先进后出
  24. @property (nonatomic, assign) BOOL resumeDownloadFIFO;
  25. // 全部并发 默认NO, 当YES时,忽略maxDownloadCount
  26. @property (nonatomic, assign) BOOL isBatchDownload;
  27. // 后台session configure
  28. @property (nonatomic, strong) NSString *backgroundConfigure;
  29. @property (nonatomic, copy) void (^backgroundSessionCompletionHandler)();
  30. // 后台下载完成后调用 返回文件保存路径filePath
  31. @property (nonatomic, copy) NSString *(^backgroundSessionDownloadCompleteBlock)(NSString *downloadURL);
  32. // 单例
  33. + (TYDownloadSessionManager *)manager;
  34. // 配置后台session
  35. - (void)configureBackroundSession;
  36. // 获取正在下载模型
  37. - (TYDownloadModel *)downLoadingModelForURLString:(NSString *)URLString;
  38. // 获取后台运行task
  39. - (NSURLSessionDownloadTask *)backgroundSessionTasksWithDownloadModel:(TYDownloadModel *)downloadModel;
  40. // 是否已经下载
  41. - (BOOL)isDownloadCompletedWithDownloadModel:(TYDownloadModel *)downloadModel;
  42. // 取消所有完成或失败后台task
  43. - (void)cancleAllBackgroundSessionTasks;
  44. // 开始下载
  45. - (TYDownloadModel *)startDownloadURLString:(NSString *)URLString toDestinationPath:(NSString *)destinationPath progress:(TYDownloadProgressBlock)progress state:(TYDownloadStateBlock)state;
  46. // 开始下载
  47. - (void)startWithDownloadModel:(TYDownloadModel *)downloadModel;
  48. // 开始下载
  49. - (void)startWithDownloadModel:(TYDownloadModel *)downloadModel progress:(TYDownloadProgressBlock)progress state:(TYDownloadStateBlock)state;
  50. // 恢复下载(除非确定对这个model进行了suspend,否则使用start)
  51. - (void)resumeWithDownloadModel:(TYDownloadModel *)downloadModel;
  52. // 暂停下载
  53. - (void)suspendWithDownloadModel:(TYDownloadModel *)downloadModel;
  54. // 取消下载
  55. - (void)cancleWithDownloadModel:(TYDownloadModel *)downloadModel;
  56. // 删除下载
  57. - (void)deleteFileWithDownloadModel:(TYDownloadModel *)downloadModel;
  58. // 删除下载
  59. - (void)deleteAllFileWithDownloadDirectory:(NSString *)downloadDirectory;
  60. @end