KTVHCDataRequest.m 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //
  2. // KTVHCDataRequest.m
  3. // KTVHTTPCache
  4. //
  5. // Created by Single on 2017/8/11.
  6. // Copyright © 2017年 Single. All rights reserved.
  7. //
  8. #import "KTVHCDataRequest.h"
  9. #import "KTVHCData+Internal.h"
  10. #import "KTVHCLog.h"
  11. @implementation KTVHCDataRequest
  12. - (instancetype)initWithURL:(NSURL *)URL headers:(NSDictionary *)headers
  13. {
  14. if (self = [super init]) {
  15. KTVHCLogAlloc(self);
  16. self->_URL = URL;
  17. self->_headers = KTVHCRangeFillToRequestHeadersIfNeeded(KTVHCRangeFull(), headers);
  18. self->_range = KTVHCRangeWithRequestHeaderValue([self.headers objectForKey:@"Range"]);
  19. KTVHCLogDataRequest(@"%p Create data request\nURL : %@\nHeaders : %@\nRange : %@", self, self.URL, self.headers, KTVHCStringFromRange(self.range));
  20. }
  21. return self;
  22. }
  23. - (void)dealloc
  24. {
  25. KTVHCLogDealloc(self);
  26. }
  27. - (KTVHCDataRequest *)newRequestWithRange:(KTVHCRange)range
  28. {
  29. NSDictionary *headers = KTVHCRangeFillToRequestHeaders(range, self.headers);
  30. KTVHCDataRequest *obj = [[KTVHCDataRequest alloc] initWithURL:self.URL headers:headers];
  31. return obj;
  32. }
  33. - (KTVHCDataRequest *)newRequestWithTotalLength:(long long)totalLength
  34. {
  35. KTVHCRange range = KTVHCRangeWithEnsureLength(self.range, totalLength);
  36. return [self newRequestWithRange:range];
  37. }
  38. @end