// // DemoHttpdnsScenario.h // NewHttpDNSTestDemo // #import #import "DemoResolveModel.h" NS_ASSUME_NONNULL_BEGIN @class DemoHttpdnsScenario; @interface DemoHttpdnsScenarioConfig : NSObject @property (nonatomic, copy) NSString *host; @property (nonatomic, copy) NSString *queryType; // @"A", @"AAAA", @"both" - (instancetype)init; @end @protocol DemoHttpdnsScenarioDelegate - (void)scenario:(DemoHttpdnsScenario *)scenario didUpdateModel:(DemoResolveModel *)model; - (void)scenario:(DemoHttpdnsScenario *)scenario didAppendLogLine:(NSString *)line; @end @interface DemoHttpdnsScenario : NSObject @property (nonatomic, weak, nullable) id delegate; @property (nonatomic, strong, readonly) DemoResolveModel *model; - (instancetype)initWithDelegate:(id)delegate; - (void)applyConfig:(DemoHttpdnsScenarioConfig *)config; - (void)resolve; - (void)resolveSyncNonBlocking; - (void)resolveSync; - (NSString *)logSnapshot; @end NS_ASSUME_NONNULL_END