BBANetworkSilentDetectManager.h
1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//
// BBANetworkSilentDetectManager.h
// BBAAPIRequestExt
//
// Created by baidu on 2020/7/6.
// Copyright © 2020 Baidu. All rights reserved.
//
// 静默探测管理类,对外提供云控探测能力
#import <Foundation/Foundation.h>
#import <BBAAPIRequest/BBAAPIReqUtils.h>
#import <BBAAPIRequest/BBANetworkSilentDetectModel.h>
#import "BBANetworkSilentDetectUtils.h"
NS_ASSUME_NONNULL_BEGIN
typedef NSArray<NSString *> * _Nullable (^BANetworkSilentDetectIPGetter)(NSString * _Nullable host);
// 外部进行HTTPDNS探测回调block
typedef BBADnsResultInfo * _Nullable (^BBANetworkSilentDetectHttpDnsIPGetter)(NSString * _Nullable host);
@interface BBANetworkSilentDetectManager : NSObject
/// 通过host获取ip列表block,同步返回ip列表
@property (nonatomic, copy) BANetworkSilentDetectIPGetter ipGetter;
/// 外部注入HTTPDNS探测结果
@property (nonatomic, copy) BBANetworkSilentDetectHttpDnsIPGetter httpDnsIPGetter;
+ (instancetype)sharedManager;
/// 根据概率&配置信息,进行静默探测(调用前需先设置ipGetter)
/// @param groups 配置数据
/// @param numerator 概率分子
/// @param denominator 概率分母
/// @param probeType 探测类型
/// @param completion 回调block,若为空不会执行探测任务,block中参数logs,探测日志结果数组,每一条为一个ip探测任务结果
- (void)tryToDetectWithArray:(NSArray *)groups
numerator:(NSInteger)numerator
denominator:(NSInteger)denominator
probeType:(BBANetworkDetectType)probeType
completionBlock:(void (^)(NSArray * _Nullable logs, BOOL reachabilityStatusChanged))completion;
@end
NS_ASSUME_NONNULL_END