QNDnsPrefetcher.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //
  2. // QNDnsPrefetcher.h
  3. // QnDNS
  4. //
  5. // Created by yangsen on 2020/3/26.
  6. // Copyright © 2020 com.qiniu. All rights reserved.
  7. //
  8. #import "QNTransactionManager.h"
  9. #import "QNDns.h"
  10. #import "QNConfiguration.h"
  11. NS_ASSUME_NONNULL_BEGIN
  12. #define kQNDnsPrefetcher [QNDnsPrefetcher shared]
  13. @interface QNDnsPrefetcher : NSObject
  14. + (instancetype)shared;
  15. // 无效缓存,会根据inetAddress的host获取缓存列表,并移除inetAddress
  16. - (void)invalidInetAdress:(id <QNInetAddressDelegate>)inetAddress;
  17. /// 根据host从缓存中读取DNS信息
  18. - (NSArray <id <QNInetAddressDelegate> > *)getInetAddressByHost:(NSString *)host;
  19. @end
  20. @interface QNTransactionManager(Dns)
  21. /// 添加加载本地dns事务
  22. - (void)addDnsLocalLoadTransaction;
  23. /// 添加检测并预取dns事务 如果未开启DNS 或 事务队列中存在token对应的事务未处理,则返回NO
  24. - (BOOL)addDnsCheckAndPrefetchTransaction:(QNZone *)currentZone token:(NSString *)token;
  25. /// 设置定时事务:检测已缓存DNS有效情况事务 无效会重新预取
  26. - (void)setDnsCheckWhetherCachedValidTransactionAction;
  27. @end
  28. NS_ASSUME_NONNULL_END