QNZoneInfo.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. extern NSString *const QNZoneInfoSDKDefaultIOHost;
  11. extern NSString *const QNZoneInfoEmptyRegionId;
  12. @interface QNZoneInfo : NSObject
  13. @property(nonatomic, assign, readonly)long ttl;
  14. @property(nonatomic, assign, readonly)BOOL http3Enabled;
  15. @property(nonatomic, strong, readonly)NSArray<NSString *> *domains;
  16. @property(nonatomic, strong, readonly)NSArray<NSString *> *old_domains;
  17. @property(nonatomic, copy, readonly)NSString *regionId;
  18. @property(nonatomic, strong, readonly)NSArray <NSString *> *allHosts;
  19. @property(nonatomic, strong, readonly)NSDictionary *detailInfo;
  20. + (QNZoneInfo *)zoneInfoWithMainHosts:(NSArray <NSString *> *)mainHosts
  21. regionId:(NSString * _Nullable)regionId;
  22. + (QNZoneInfo *)zoneInfoWithMainHosts:(NSArray <NSString *> *)mainHosts
  23. oldHosts:(NSArray <NSString *> * _Nullable)oldHosts
  24. regionId:(NSString * _Nullable)regionId;
  25. /// 根据键值对构造对象 【内部使用】
  26. /// @param detailInfo 键值对信息
  27. + (QNZoneInfo *)zoneInfoFromDictionary:(NSDictionary *)detailInfo;
  28. - (BOOL)isValid;
  29. @end
  30. @interface QNZonesInfo : NSObject
  31. @property (nonatomic, assign, readonly) BOOL isTemporary;
  32. @property (nonatomic, assign, readonly) BOOL isValid;
  33. @property (nonatomic, strong, readonly) NSArray<QNZoneInfo *> *zonesInfo;
  34. /// 根据键值对构造对象 【内部使用】
  35. /// @param dictionary 键值对信息
  36. + (instancetype)infoWithDictionary:(NSDictionary *)dictionary;
  37. - (instancetype)initWithZonesInfo:(NSArray<QNZoneInfo *> *)zonesInfo;
  38. // 转成临时 zones, 临时 Zones,不建议长期使用
  39. - (void)toTemporary;
  40. @end
  41. NS_ASSUME_NONNULL_END