// // RQDataBaseManager.h // jiaPei // // Created by 张嵘 on 2018/12/4. // Copyright © 2018 JCZ. All rights reserved. // #import NS_ASSUME_NONNULL_BEGIN #define kRQDownloadDataBaseManager [RQDataBaseManager shareManager] /************************* 下载 *************************/ UIKIT_EXTERN NSString * const RQDownloadProgressNotification; // 进度回调通知 UIKIT_EXTERN NSString * const RQDownloadStateChangeNotification; // 状态改变通知 UIKIT_EXTERN NSString * const RQDownloadMaxConcurrentCountKey; // 最大同时下载数量key UIKIT_EXTERN NSString * const RQDownloadMaxConcurrentCountChangeNotification; // 最大同时下载数量改变通知 UIKIT_EXTERN NSString * const RQDownloadAllowsCellularAccessKey; // 是否允许蜂窝网络下载key UIKIT_EXTERN NSString * const RQDownloadAllowsCellularAccessChangeNotification; // 是否允许蜂窝网络下载改变通知 /************************* 网络 *************************/ UIKIT_EXTERN NSString * const RQNetworkingReachabilityDidChangeNotification; // 网络改变改变通知 typedef NS_OPTIONS(NSUInteger, RQDBUpdateOption) { RQDBUpdateOptionState = 1 << 0, // 更新状态 RQDBUpdateOptionLastStateTime = 1 << 1, // 更新状态最后改变的时间 RQDBUpdateOptionResumeData = 1 << 2, // 更新下载的数据 RQDBUpdateOptionProgressData = 1 << 3, // 更新进度数据(包含tmpFileSize、totalFileSize、progress、intervalFileSize、lastSpeedTime) RQDBUpdateOptionAllParam = 1 << 4 // 更新全部数据 }; @interface RQDataBaseManager : NSObject // 获取单例 + (instancetype)shareManager; // 插入数据 - (void)insertModel:(RQDownloadModel *)model; // 获取数据 - (RQDownloadModel *)getModelWithUrl:(NSString *)url; // 根据url获取数据 - (RQDownloadModel *)getWaitingModel; // 获取第一条等待的数据 - (RQDownloadModel *)getLastDownloadingModel; // 获取最后一条正在下载的数据 - (NSArray *)getAllCacheData; // 获取所有数据 - (NSArray *)getAllDownloadingData; // 根据lastStateTime倒叙获取所有正在下载的数据 - (NSArray *)getAllDownloadedData; // 获取所有下载完成的数据 - (NSArray *)getAllUnDownloadedData; // 获取所有未下载完成的数据(包含正在下载、等待、暂停、错误) - (NSArray *)getAllWaitingData; // 获取所有等待下载的数据 // 更新数据 - (void)updateWithModel:(RQDownloadModel *)model option:(RQDBUpdateOption)option; // 删除数据 - (void)deleteModelWithUrl:(NSString *)url; @end NS_ASSUME_NONNULL_END