QNUploadInfo.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // QNUploadInfo.h
  3. // QiniuSDK
  4. //
  5. // Created by yangsen on 2021/5/10.
  6. // Copyright © 2021 Qiniu. All rights reserved.
  7. //
  8. #import "QNUploadSource.h"
  9. NS_ASSUME_NONNULL_BEGIN
  10. @interface QNUploadInfo : NSObject
  11. /// 构造函数
  12. /// @param source 上传数据源
  13. + (instancetype)info:(id <QNUploadSource>)source;
  14. /// 通过字典信息进行配置
  15. /// @param dictionary 配置信息
  16. - (void)setInfoFromDictionary:(NSDictionary *)dictionary;
  17. /// 信息转化为字典
  18. - (NSDictionary *)toDictionary;
  19. /// 数据源是否有效,为空则无效
  20. - (BOOL)hasValidResource;
  21. /// 是否有效,数据源是否有效 & 上传信息有效,比如断点续传时,UploadId是否有效
  22. - (BOOL)isValid;
  23. /// 是否可以重新
  24. - (BOOL)couldReloadSource;
  25. /// 重新加载数据
  26. - (BOOL)reloadSource;
  27. /// 数据源ID
  28. - (NSString *)getSourceId;
  29. /// 数据源大小,未知为:-1
  30. - (long long)getSourceSize;
  31. /// 是否为同一个 UploadInfo,
  32. /// 同一个:source 相同,上传方式相同
  33. /// @param info 上传信息
  34. - (BOOL)isSameUploadInfo:(QNUploadInfo *)info;
  35. /// 已上传大小
  36. - (long long)uploadSize;
  37. /// 资源是否已全部上传
  38. /// 子类重写
  39. - (BOOL)isAllUploaded;
  40. /// 清除上传状态信息
  41. /// 子类重写
  42. - (void)clearUploadState;
  43. /// 检查文件状态, 主要处理没有 data 但处于上传状态
  44. - (void)checkInfoStateAndUpdate;
  45. /// 读取数据
  46. /// @param dataSize 读取数据大小
  47. /// @param dataOffset 数据偏移量
  48. /// @param error 读取时的错误信息
  49. - (NSData *)readData:(NSInteger)dataSize dataOffset:(long long)dataOffset error:(NSError **)error;
  50. /// 关闭流
  51. - (void)close;
  52. @end
  53. #define kQNUploadInfoTypeKey @"infoType"
  54. NS_ASSUME_NONNULL_END