QNUploadData.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //
  2. // QNUploadData.h
  3. // QiniuSDK
  4. //
  5. // Created by yangsen on 2021/5/10.
  6. // Copyright © 2021 Qiniu. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. typedef NS_ENUM(NSInteger, QNUploadState) {
  11. QNUploadStateNeedToCheck, // 需要检测数据
  12. QNUploadStateWaitToUpload, // 等待上传
  13. QNUploadStateUploading, // 正在上传
  14. QNUploadStateComplete, // 上传结束
  15. };
  16. @interface QNUploadData : NSObject
  17. /// 当前data偏移量
  18. @property(nonatomic, assign, readonly)long long offset;
  19. /// 当前data大小
  20. @property(nonatomic, assign, readonly)long long size;
  21. /// data下标
  22. @property(nonatomic, assign, readonly)NSInteger index;
  23. /// data etag
  24. @property(nonatomic, copy, nullable)NSString *etag;
  25. /// data md5
  26. @property(nonatomic, copy, nullable)NSString *md5;
  27. /// 上传状态
  28. @property(nonatomic, assign)QNUploadState state;
  29. /// 上传进度 【不进行离线缓存】
  30. @property(nonatomic, assign)long long uploadSize;
  31. /// 上传数据 【不进行离线缓存】
  32. @property(nonatomic, strong, nullable)NSData *data;
  33. //MARK:-- 构造
  34. + (instancetype)dataFromDictionary:(NSDictionary *)dictionary;
  35. - (instancetype)initWithOffset:(long long)offset
  36. dataSize:(long long)dataSize
  37. index:(NSInteger)index;
  38. //MARK:-- logic
  39. /// 是否需要上传
  40. - (BOOL)needToUpload;
  41. /// 是否已经上传
  42. - (BOOL)isUploaded;
  43. /// 检测 data 状态,处理出于上传状态的无 data 数据的情况,无 data 数据则状态调整为监测数据状态
  44. - (void)checkStateAndUpdate;
  45. /// 转化字典
  46. - (NSDictionary *)toDictionary;
  47. /// 清除状态
  48. - (void)clearUploadState;
  49. @end
  50. NS_ASSUME_NONNULL_END