1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- //
- // TYDownloadSessionManager.h
- // TYDownloadManagerDemo
- //
- // Created by tany on 16/6/12.
- // Copyright © 2016年 tany. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import "TYDownloadModel.h"
- #import "TYDownloadDelegate.h"
- /**
- * 下载管理类 封装NSURLSessionDownloadTask
- */
- @interface TYDownloadSessionManager : NSObject<NSURLSessionDownloadDelegate>
- // 下载代理
- @property (nonatomic,weak) id<TYDownloadDelegate> delegate;
- // 等待中的模型 只读
- @property (nonatomic, strong,readonly) NSMutableArray *waitingDownloadModels;
- // 下载中的模型 只读
- @property (nonatomic, strong,readonly) NSMutableArray *downloadingModels;
- // 最大下载数
- @property (nonatomic, assign) NSInteger maxDownloadCount;
- // 等待下载队列 先进先出 默认YES, 当NO时,先进后出
- @property (nonatomic, assign) BOOL resumeDownloadFIFO;
- // 全部并发 默认NO, 当YES时,忽略maxDownloadCount
- @property (nonatomic, assign) BOOL isBatchDownload;
- // 后台session configure
- @property (nonatomic, strong) NSString *backgroundConfigure;
- @property (nonatomic, copy) void (^backgroundSessionCompletionHandler)();
- // 后台下载完成后调用 返回文件保存路径filePath
- @property (nonatomic, copy) NSString *(^backgroundSessionDownloadCompleteBlock)(NSString *downloadURL);
- // 单例
- + (TYDownloadSessionManager *)manager;
- // 配置后台session
- - (void)configureBackroundSession;
- // 获取正在下载模型
- - (TYDownloadModel *)downLoadingModelForURLString:(NSString *)URLString;
- // 获取后台运行task
- - (NSURLSessionDownloadTask *)backgroundSessionTasksWithDownloadModel:(TYDownloadModel *)downloadModel;
- // 是否已经下载
- - (BOOL)isDownloadCompletedWithDownloadModel:(TYDownloadModel *)downloadModel;
- // 取消所有完成或失败后台task
- - (void)cancleAllBackgroundSessionTasks;
- // 开始下载
- - (TYDownloadModel *)startDownloadURLString:(NSString *)URLString toDestinationPath:(NSString *)destinationPath progress:(TYDownloadProgressBlock)progress state:(TYDownloadStateBlock)state;
- // 开始下载
- - (void)startWithDownloadModel:(TYDownloadModel *)downloadModel;
- // 开始下载
- - (void)startWithDownloadModel:(TYDownloadModel *)downloadModel progress:(TYDownloadProgressBlock)progress state:(TYDownloadStateBlock)state;
- // 恢复下载(除非确定对这个model进行了suspend,否则使用start)
- - (void)resumeWithDownloadModel:(TYDownloadModel *)downloadModel;
- // 暂停下载
- - (void)suspendWithDownloadModel:(TYDownloadModel *)downloadModel;
- // 取消下载
- - (void)cancleWithDownloadModel:(TYDownloadModel *)downloadModel;
- // 删除下载
- - (void)deleteFileWithDownloadModel:(TYDownloadModel *)downloadModel;
- // 删除下载
- - (void)deleteAllFileWithDownloadDirectory:(NSString *)downloadDirectory;
- @end
|