QNZoneInfo.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //
  2. // QNZoneInfo.h
  3. // QiniuSDK
  4. //
  5. // Created by yangsen on 2020/4/16.
  6. // Copyright © 2020 Qiniu. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. typedef NS_ENUM(NSUInteger, QNZoneInfoType) {
  11. QNZoneInfoTypeMain,
  12. QNZoneInfoTypeBackup,
  13. };
  14. typedef enum : NSUInteger {
  15. QNZoneRegion_z0,
  16. QNZoneRegion_z1,
  17. QNZoneRegion_z2,
  18. QNZoneRegion_as0,
  19. QNZoneRegion_na0,
  20. QNZoneRegion_unknown
  21. } QNZoneRegion;
  22. @interface QNZoneInfo : NSObject
  23. @property (nonatomic, assign, readonly) QNZoneInfoType type;
  24. @property (nonatomic, assign, readonly) long ttl;
  25. @property (nonatomic, strong, readonly) NSArray<NSString *> *upDomainsList;
  26. @property (nonatomic, strong, readonly) NSMutableDictionary *upDomainsDic;
  27. - (instancetype)init:(long)ttl
  28. upDomainsList:(NSMutableArray<NSString *> *)upDomainsList
  29. upDomainsDic:(NSMutableDictionary *)upDomainsDic
  30. zoneRegion:(QNZoneRegion)zoneRegion;
  31. - (QNZoneInfo *)buildInfoFromJson:(NSDictionary *)resp;
  32. - (void)frozenDomain:(NSString *)domain;
  33. - (BOOL)isValid;
  34. @end
  35. @interface QNZonesInfo : NSObject
  36. @property (nonatomic, strong) NSArray<QNZoneInfo *> *zonesInfo;
  37. @property (nonatomic, assign, readonly) BOOL hasBackupZone;
  38. + (instancetype)buildZonesInfoWithResp:(NSDictionary *)resp;
  39. - (instancetype)initWithZonesInfo:(NSArray<QNZoneInfo *> *)zonesInfo;
  40. - (QNZoneInfo *)getZoneInfoWithType:(QNZoneInfoType)type;
  41. - (NSString *)getZoneInfoRegionNameWithType:(QNZoneInfoType)type;
  42. @end
  43. NS_ASSUME_NONNULL_END