KTVHCDataStorage.m 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. //
  2. // KTVHCDataManager.m
  3. // KTVHTTPCache
  4. //
  5. // Created by Single on 2017/8/11.
  6. // Copyright © 2017年 Single. All rights reserved.
  7. //
  8. #import "KTVHCDataStorage.h"
  9. #import "KTVHCDataUnitPool.h"
  10. #import "KTVHCLog.h"
  11. @implementation KTVHCDataStorage
  12. + (instancetype)storage
  13. {
  14. static KTVHCDataStorage * obj = nil;
  15. static dispatch_once_t onceToken;
  16. dispatch_once(&onceToken, ^{
  17. obj = [[self alloc] init];
  18. });
  19. return obj;
  20. }
  21. - (instancetype)init
  22. {
  23. if (self = [super init])
  24. {
  25. self.maxCacheLength = 500 * 1024 * 1024;
  26. }
  27. return self;
  28. }
  29. - (NSURL *)completeFileURLIfExistedWithURL:(NSURL *)URL
  30. {
  31. KTVHCDataUnit * unit = [[KTVHCDataUnitPool pool] unitWithURL:URL];
  32. NSURL * fileURL = unit.fileURL;
  33. [unit workingRelease];
  34. return fileURL;
  35. }
  36. - (KTVHCDataReader *)readerWithRequest:(KTVHCDataRequest *)request
  37. {
  38. if (!request || request.URL.absoluteString.length <= 0)
  39. {
  40. KTVHCLogDataStorage(@"Invaild reader request, %@", request.URL);
  41. return nil;
  42. }
  43. KTVHCDataReader * reader = [KTVHCDataReader readerWithRequest:request];
  44. return reader;
  45. }
  46. - (KTVHCDataLoader *)loaderWithRequest:(KTVHCDataRequest *)request
  47. {
  48. if (!request || request.URL.absoluteString.length <= 0)
  49. {
  50. KTVHCLogDataStorage(@"Invaild loader request, %@", request.URL);
  51. return nil;
  52. }
  53. KTVHCDataLoader * loader = [KTVHCDataLoader loaderWithRequest:request];
  54. return loader;
  55. }
  56. - (KTVHCDataCacheItem *)cacheItemWithURL:(NSURL *)URL
  57. {
  58. return [[KTVHCDataUnitPool pool] cacheItemWithURL:URL];
  59. }
  60. - (NSArray<KTVHCDataCacheItem *> *)allCacheItems
  61. {
  62. return [[KTVHCDataUnitPool pool] allCacheItem];
  63. }
  64. - (long long)totalCacheLength
  65. {
  66. return [[KTVHCDataUnitPool pool] totalCacheLength];
  67. }
  68. - (void)deleteCacheWithURL:(NSURL *)URL
  69. {
  70. [[KTVHCDataUnitPool pool] deleteUnitWithURL:URL];
  71. }
  72. - (void)deleteAllCaches
  73. {
  74. [[KTVHCDataUnitPool pool] deleteAllUnits];
  75. }
  76. @end