SGDownloadQueue.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. //
  2. // SGDownloadQueue.h
  3. // OfflineBreakPointDownload
  4. //
  5. // Created by Shangen Zhang on 16/11/26.
  6. // Copyright © 2016年 Shangen Zhang. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. /** 下载处理 */
  10. typedef enum : NSUInteger {
  11. DownloadHandleTypeStart, // 开始下载
  12. DownloadHandleTypeSuspend, // 暂停下载
  13. DownloadHandleTypeCancel, // 取消下载
  14. } DownloadHandleType;
  15. @interface SGDownloadQueue : NSObject
  16. /** 设置最大的并发下载个数 */
  17. @property (nonatomic, assign) NSInteger maxCount;
  18. @property (nonatomic,strong) NSURLSession *session;
  19. // 添加下载任务
  20. - (void)addDownloadWithSession:(NSURLSession *)session
  21. URL:(NSURL *)url
  22. begin:(void(^)(NSString * filePath))begin
  23. progress:(void(^)(NSInteger completeSize,NSInteger expectSize))progress
  24. complete:(void(^)(NSDictionary *respose,NSError *error))complet;
  25. - (void)addDownloadWithSession:(NSURLSession *)session
  26. URL:(NSURL *)url
  27. fileType:(NSInteger)fileType
  28. fileSize:(NSInteger)fileSize
  29. begin:(void(^)(NSString * filePath))begin
  30. progress:(void(^)(NSInteger completeSize,NSInteger expectSize))progress
  31. complete:(void(^)(NSDictionary *respose,NSError *error))complet;
  32. // 对当前任务进行操作
  33. - (void)operateDownloadWithUrl:(NSString *)url session:(NSURLSession *)session handle:(DownloadHandleType)handle;
  34. // 取消所有任务
  35. //- (void)cancelAllTasks;
  36. - (void)suspendAllTasksWithSession:(NSURLSession *)session;
  37. - (void)startAllTasksWithSession:(NSURLSession *)session;
  38. // 供downloader 处理下载调用
  39. - (void)dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response;
  40. - (void)dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data;
  41. - (void)task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error;
  42. @end