mixDownloadQueue.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. //
  2. // mixDownloadQueue.h
  3. // 双子星云手机
  4. //
  5. // Created by xd h on 2024/6/27.
  6. //
  7. #import <Foundation/Foundation.h>
  8. NS_ASSUME_NONNULL_BEGIN
  9. /** 下载处理 */
  10. typedef enum : NSUInteger {
  11. DownloadHandleTypeStart, // 开始下载
  12. DownloadHandleTypeSuspend, // 暂停下载
  13. DownloadHandleTypeCancel, // 取消下载
  14. } DownloadHandleType;
  15. @interface mixDownloadQueue : 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. // 对当前任务进行操作
  26. - (void)operateDownloadWithUrl:(NSString *)url session:(NSURLSession *)session handle:(DownloadHandleType)handle;
  27. - (void)suspendAllTasksWithSession:(NSURLSession *)session;
  28. - (void)startAllTasksWithSession:(NSURLSession *)session;
  29. // 供downloader 处理下载调用
  30. - (void)dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response;
  31. - (void)dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data;
  32. - (void)task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error;
  33. @end
  34. NS_ASSUME_NONNULL_END