BBADownloaderItem.h
2.65 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
//
// BBADownloaderItem.h
// ApsManager
//
// Created by ZhangYonglu on 2018/10/22.
// Copyright © 2018年 Baidu. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "BBADownloaderCommon.h"
#import "BBADownloaderItemProtocol.h"
#import "BBADownloaderRequestItem.h"
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface BBADownloaderItem : NSObject<NSCopying,BBADownloaderItemProtocol>
@property (nonatomic, strong) BBADownloaderRequestItem *reuqestItem;
@property (nonatomic, copy) NSString *uniqueId;
@property (nonatomic, assign) NSTimeInterval completeTime; // 下载完成时间
@property (nonatomic, assign) EBBADownloaderStatus status;
@property (nonatomic, assign) EBBADownloaderResultCode resultCode; // 运行状态码
@property (nonatomic, assign) EBBADownloaderDetailResultCode detailResultCode; // 下载失败详细的错误码
@property (nonatomic, assign) NSInteger httpStatusCode; // http状态码和网络请求状态码
@property (nonatomic, copy) NSString *resultMessage; // 运行的详细状态信息(和resultCode对应)
@property (nonatomic, copy) NSDictionary *responseHeaders; // 请求返回的header头信息
@property (nonatomic, assign) long long periodReceivedBytes; // 在单位时间内接收到的字节数
@property (nonatomic, strong) NSDate *lastCalculateDate; // 最近一次计算的时间节点
@property (nonatomic, assign) long long speed; // 下载速度
@property (nonatomic, assign) CGFloat remainingTime; // 剩余时间
@property (nonatomic, assign) EBBADownloaderPriority priority; // 下载优先级
@property (nonatomic, assign) CGFloat progress;
@property (nonatomic, assign) long long bytes; // 已接收字节(已下载文件大小
@property (nonatomic, assign) long long totalReceivedBytes; // 已接收字节(已下载文件大小
@property (nonatomic, assign) long long totalBytes; // 总字节(文件总大小)
-(instancetype)initWithRequestItem:(BBADownloaderRequestItem *)requestItem;
/**
* @brief 根据item更新信息
*
* @param item 目标item
*/
-(void)updateWithItem:(BBADownloaderItem *)item;
-(void)appendResultMessage:(NSString *)resultMessage;
-(void)reset;
/*
* 网络库返回错误码处理
*
* @param httpStatusCode 状态码
*/
- (void)updateDetailResultCode:(NSInteger)httpStatusCode;
// BBADownloaderItemProtocol
- (NSString *)sourceURL; // 资源源地址
- (NSString *)destinationPath; // 目标存储路径;默认由资源管理器进行管理
- (BOOL)allowDownloadResume; // 是否允许断点续传;默认允许
- (NSTimeInterval)downloadTimeout; // 超时时间,默认是30秒。
- (NSInteger)retryCount; // 重试次数;默认为0,失败不重试
@end
NS_ASSUME_NONNULL_END