KTVHCError.m 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. //
  2. // KTVHCError.m
  3. // KTVHTTPCache
  4. //
  5. // Created by Single on 2017/8/17.
  6. // Copyright © 2017年 Single. All rights reserved.
  7. //
  8. #import "KTVHCError.h"
  9. NSString * const KTVHCErrorUserInfoKeyURL = @"KTVHCErrorUserInfoKeyURL";
  10. NSString * const KTVHCErrorUserInfoKeyRequest = @"KTVHCErrorUserInfoKeyRequest";
  11. NSString * const KTVHCErrorUserInfoKeyResponse = @"KTVHCErrorUserInfoKeyResponse";
  12. @implementation KTVHCError
  13. + (NSError *)errorForResponseUnavailable:(NSURL *)URL
  14. request:(NSURLRequest *)request
  15. response:(NSURLResponse *)response
  16. {
  17. NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
  18. if (URL) {
  19. [userInfo setObject:URL forKey:KTVHCErrorUserInfoKeyURL];
  20. }
  21. if (request) {
  22. [userInfo setObject:request forKey:KTVHCErrorUserInfoKeyRequest];
  23. }
  24. if (response) {
  25. [userInfo setObject:response forKey:KTVHCErrorUserInfoKeyResponse];
  26. }
  27. NSError *error = [NSError errorWithDomain:@"KTVHTTPCache error"
  28. code:KTVHCErrorCodeResponseUnavailable
  29. userInfo:userInfo];
  30. return error;
  31. }
  32. + (NSError *)errorForUnsupportContentType:(NSURL *)URL
  33. request:(NSURLRequest *)request
  34. response:(NSURLResponse *)response
  35. {
  36. NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
  37. if (URL) {
  38. [userInfo setObject:URL forKey:KTVHCErrorUserInfoKeyURL];
  39. }
  40. if (request) {
  41. [userInfo setObject:request forKey:KTVHCErrorUserInfoKeyRequest];
  42. }
  43. if (response) {
  44. [userInfo setObject:response forKey:KTVHCErrorUserInfoKeyResponse];
  45. }
  46. NSError *error = [NSError errorWithDomain:@"KTVHTTPCache error"
  47. code:KTVHCErrorCodeUnsupportContentType
  48. userInfo:userInfo];
  49. return error;
  50. }
  51. + (NSError *)errorForNotEnoughDiskSpace:(long long)totlaContentLength
  52. request:(long long)currentContentLength
  53. totalCacheLength:(long long)totalCacheLength
  54. maxCacheLength:(long long)maxCacheLength
  55. {
  56. NSError *error = [NSError errorWithDomain:@"KTVHTTPCache error"
  57. code:KTVHCErrorCodeNotEnoughDiskSpace
  58. userInfo:@{@"totlaContentLength" : @(totlaContentLength),
  59. @"currentContentLength" : @(currentContentLength),
  60. @"totalCacheLength" : @(totalCacheLength),
  61. @"maxCacheLength" : @(maxCacheLength)}];
  62. return error;
  63. }
  64. + (NSError *)errorForException:(NSException *)exception
  65. {
  66. NSError *error = [NSError errorWithDomain:@"KTVHTTPCache error"
  67. code:KTVHCErrorCodeException
  68. userInfo:exception.userInfo];
  69. return error;
  70. }
  71. @end