RQDataBaseManager.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. //
  2. // RQDataBaseManager.h
  3. // jiaPei
  4. //
  5. // Created by 张嵘 on 2018/12/4.
  6. // Copyright © 2018 JCZ. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. #define kRQDownloadDataBaseManager [RQDataBaseManager shareManager]
  11. /************************* 下载 *************************/
  12. UIKIT_EXTERN NSString * const RQDownloadProgressNotification; // 进度回调通知
  13. UIKIT_EXTERN NSString * const RQDownloadStateChangeNotification; // 状态改变通知
  14. UIKIT_EXTERN NSString * const RQDownloadMaxConcurrentCountKey; // 最大同时下载数量key
  15. UIKIT_EXTERN NSString * const RQDownloadMaxConcurrentCountChangeNotification; // 最大同时下载数量改变通知
  16. UIKIT_EXTERN NSString * const RQDownloadAllowsCellularAccessKey; // 是否允许蜂窝网络下载key
  17. UIKIT_EXTERN NSString * const RQDownloadAllowsCellularAccessChangeNotification; // 是否允许蜂窝网络下载改变通知
  18. /************************* 网络 *************************/
  19. UIKIT_EXTERN NSString * const RQNetworkingReachabilityDidChangeNotification; // 网络改变改变通知
  20. typedef NS_OPTIONS(NSUInteger, RQDBUpdateOption) {
  21. RQDBUpdateOptionState = 1 << 0, // 更新状态
  22. RQDBUpdateOptionLastStateTime = 1 << 1, // 更新状态最后改变的时间
  23. RQDBUpdateOptionResumeData = 1 << 2, // 更新下载的数据
  24. RQDBUpdateOptionProgressData = 1 << 3, // 更新进度数据(包含tmpFileSize、totalFileSize、progress、intervalFileSize、lastSpeedTime)
  25. RQDBUpdateOptionAllParam = 1 << 4 // 更新全部数据
  26. };
  27. @interface RQDataBaseManager : NSObject
  28. // 获取单例
  29. + (instancetype)shareManager;
  30. // 插入数据
  31. - (void)insertModel:(RQDownloadModel *)model;
  32. // 获取数据
  33. - (RQDownloadModel *)getModelWithUrl:(NSString *)url; // 根据url获取数据
  34. - (RQDownloadModel *)getWaitingModel; // 获取第一条等待的数据
  35. - (RQDownloadModel *)getLastDownloadingModel; // 获取最后一条正在下载的数据
  36. - (NSArray<RQDownloadModel *> *)getAllCacheData; // 获取所有数据
  37. - (NSArray<RQDownloadModel *> *)getAllDownloadingData; // 根据lastStateTime倒叙获取所有正在下载的数据
  38. - (NSArray<RQDownloadModel *> *)getAllDownloadedData; // 获取所有下载完成的数据
  39. - (NSArray<RQDownloadModel *> *)getAllUnDownloadedData; // 获取所有未下载完成的数据(包含正在下载、等待、暂停、错误)
  40. - (NSArray<RQDownloadModel *> *)getAllWaitingData; // 获取所有等待下载的数据
  41. // 更新数据
  42. - (void)updateWithModel:(RQDownloadModel *)model option:(RQDBUpdateOption)option;
  43. // 删除数据
  44. - (void)deleteModelWithUrl:(NSString *)url;
  45. @end
  46. NS_ASSUME_NONNULL_END