QNUploadServerFreezeUtil.m 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //
  2. // QNUploadServerFreezeUtil.m
  3. // QiniuSDK
  4. //
  5. // Created by yangsen on 2021/2/4.
  6. // Copyright © 2021 Qiniu. All rights reserved.
  7. //
  8. #import "QNUtils.h"
  9. #import "QNUploadServerFreezeUtil.h"
  10. @implementation QNUploadServerFreezeUtil
  11. + (QNUploadServerFreezeManager *)sharedHttp2Freezer {
  12. static QNUploadServerFreezeManager *manager = nil;
  13. static dispatch_once_t onceToken;
  14. dispatch_once(&onceToken, ^{
  15. manager = [[QNUploadServerFreezeManager alloc] init];
  16. });
  17. return manager;
  18. }
  19. + (QNUploadServerFreezeManager *)sharedHttp3Freezer {
  20. static QNUploadServerFreezeManager *manager = nil;
  21. static dispatch_once_t onceToken;
  22. dispatch_once(&onceToken, ^{
  23. manager = [[QNUploadServerFreezeManager alloc] init];
  24. });
  25. return manager;
  26. }
  27. + (BOOL)isType:(NSString *)type frozenByFreezeManagers:(NSArray <QNUploadServerFreezeManager *> *)freezeManagerList{
  28. if (!type || type.length == 0) {
  29. return YES;
  30. }
  31. if (!freezeManagerList || freezeManagerList.count == 0) {
  32. return NO;
  33. }
  34. BOOL isFrozen = NO;
  35. for (QNUploadServerFreezeManager *freezeManager in freezeManagerList) {
  36. isFrozen = [freezeManager isTypeFrozen:type];
  37. if (isFrozen) {
  38. break;
  39. }
  40. }
  41. return isFrozen;
  42. }
  43. + (NSString *)getFrozenType:(NSString *)host ip:(NSString *)ip {
  44. NSString *ipType = [QNUtils getIpType:ip host:host];
  45. return [NSString stringWithFormat:@"%@-%@", host, ipType];
  46. }
  47. @end