BBADownloaderManager.h
2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
//
// BBADownloaderManager.h
// ApsManager
//
// Created by ZhangYonglu on 2018/10/22.
// Copyright © 2018年 Baidu. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "BBADownloaderItem.h"
#import "BBADownloaderRequestItem.h"
#import "BBADownloaderCommon.h"
NS_ASSUME_NONNULL_BEGIN
@interface BBADownloaderManager : NSObject
+ (instancetype)sharedInstance;
/**
* @brief 添加下载任务
*
* @param requestItem 请求参数:用用详细请求配置
* @param statusChangedHandler 状态变更回调
* @param progressChangedHandler 进度变更回调
* @return 下载任务的唯一标识,用于后续暂停、恢复、取消等操作。
*/
- (NSString *)startTaskWithRequestItem:(BBADownloaderRequestItem *)requestItem
statusChangedHandler:(BBADownloaderStatusChangedHandler)statusChangedHandler
progressChangedHandler:(BBADownloaderProgressChangedHandler)progressChangedHandler;
/**
* @brief 暂停uniqueId对应的下载任务
*
* @param uniqueId 下载资源的唯一标识
*/
- (void)suspendTaskWithUniqueId:(NSString *)uniqueId;
/**
* @brief 恢复sourceURL对应的下载任务
*
* @param uniqueId 下载资源的唯一标识
*/
- (void)resumeTaskWithUniqueId:(NSString *)uniqueId;
/**
* @brief 取消uniqueId对应的下载任务
*
* @param uniqueId 下载资源的唯一标识
*/
- (void)cancelTaskWithUniqueId:(NSString *)uniqueId;
/**
* @brief 暂停uniqueId对应的下载任务
*
* @param uniqueIds 下载资源的唯一标识数组
*/
- (void)suspendTaskWithUniqueIdArray:(NSArray<NSString *> *)uniqueIds;
/**
* @brief 恢复sourceURL对应的下载任务
*
* @param uniqueIds 下载资源的唯一标识数组
*/
- (void)resumeTaskWithUniqueIdArray:(NSArray<NSString *> *)uniqueIds;
/**
* @brief 取消uniqueId对应的下载任务
*
* @param uniqueIds 下载资源的唯一标识数组
*/
- (void)cancelTaskWithUniqueIdArray:(NSArray<NSString *> *)uniqueIds;
/**
* @brief 取消所有的下载任务
*
*/
- (void)cancelAllTasks;
/**
* @brief 暂停所有的下载任务
*
*/
- (void)suspendAllTasks;
/**
* @brief 恢复所有的下载任务
*
*/
- (void)resumeAllTasks;
/**
* @brief 获取当前requstItem对应的'已下载字节数'
*
* @param requestItem 下载请求参数
* @return 已下载字节数
*/
- (int64_t)totalReceivedBytes:(BBADownloaderRequestItem *)requestItem;
/**
* @brief 将item对应的task的优先级 更改为 priority
*
* @param taskUniqueId 下载资源信息的唯一标识
* @param priority 优先级
* @param completion 完成回调,注意回调中的result不代表调整结果,而是代表是否找到了要调整的任务:YES表示找到了item对应的下载任务task。如果没有找到,则为NO
*/
- (void)changePriorityOfTask:(NSString *)taskUniqueId
toPriority:(EBBADownloaderPriority)priority
completion:(void(^)(BOOL result))completion ;
@end
NS_ASSUME_NONNULL_END