BBAAPIRequestConfiguration.h
3.4 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//
// BBAAPIRequestConfiguration.h
// BBAPods
//
// Created by mengxiangping on 16/12/16.
// Copyright © 2016年 Baidu. All rights reserved.
//
#import <Foundation/Foundation.h>
@class BBAProbeLogInfo;
@class BBABaseAPIRequest;
@class BBANetworkProbeScheduler;
typedef BOOL(^APIRequestProbeTriggerFilter)(NSError *error, NSTimeInterval ttfbMs, NSTimeInterval durationMs);
typedef void(^APIRequestProbeRecorder)(BBAProbeLogInfo *probeLog, BBANetworkProbeScheduler *probeScheduler);
// 外部注册DNS解析服务回调block (探测时使用)
typedef NSArray<NSString *>* (^APIRequestDnsResolve)(NSString *domain);
@interface BBAAPIRequestConfiguration : NSObject
+ (BBAAPIRequestConfiguration *)sharedInstance;
@property (nonatomic, assign) NSInteger maxConcurrent;
@property (nonatomic, copy) NSDictionary *maxOperationCountsOfComponents;
#pragma mark - Network Probe (sdt)
@property (nonatomic, assign, getter=isNetworkProbeEnable) BOOL networkProbeEnable;
@property (nonatomic, assign, getter=getContinuousFailureCheckCount) int32_t continuousFailureCheckCount;
@property (nonatomic, assign, getter=getContinuousSuccessCheckCount) int32_t continuousSuccessCheckCount;
@property (nonatomic, assign, getter=getWeakNetTime) double weakNetTime; // 单位:微秒
@property (nonatomic, assign, getter=getGoodNetTime) double goodNetTime; // 单位:微秒
@property (nonatomic, copy) NSArray<NSString *> *probeDomains;
@property (nonatomic, copy) NSArray<NSString *> *quicDomains;
@property (nonatomic, assign, getter=getQuicFailThreshold) int32_t quicFailThreshold;
@property (nonatomic, copy) APIRequestProbeTriggerFilter failProbeFilter; // 探测过滤器
@property (nonatomic, copy) APIRequestProbeRecorder probeRecorder; // 探测打点器
@property (nonatomic, copy) APIRequestDnsResolve dnsResolver; /// 外部注入DNS域名解析服务
@property (nonatomic, assign) BOOL enableLANetworkInfoLog; // 是否在日志中记录局域网信息
@property (nonatomic, assign) BOOL enableDnsProbeFailOver; // 是否开启DNS探测失败时进行容错
@property (nonatomic, assign) BOOL enableNonAPIRequestProbe; // 是否允许非APIRequest请求触发探测 (SDWebImage、Talos请求)
- (void)setJudgeConfig:(NSString *)judgeConfig; // 质量判断配置信息
@property (nonatomic, strong, readonly) NSArray <NSNumber *> *dnsErrorCodeForBad; // 需要判断为Bad质量网络的DNS Quary错误码列表
@property (nonatomic, strong, readonly) NSArray <NSNumber *> *pingErrorCodeForBad; // 需要判断为Bad质量网络的Ping错误码列表
@property (nonatomic, strong, readonly) NSArray <NSNumber *> *dnsErrorCodeForOffline; // 需要判断为Offline的DNS Query错误码列表
@property (nonatomic, strong, readonly) NSArray <NSNumber *> *pingErrorCodeForOffline; // 需要判断为Offline的Ping错误码列表
@property (nonatomic, strong, readonly) NSArray <NSNumber *> *dnsSubErrorCodeForOfflineExcluded; // 需要在判断为Offline时豁免的DNS Query子错误码列表
@property (nonatomic, strong, readonly) NSArray <NSNumber *> *pingSubErrorCodeForOfflineExcluded; // 需要在判断为Offline时豁免的Ping子错误码列表
@property (nonatomic, strong, readonly) NSArray <NSNumber *> *dnsSubErrorCodeForLocalPermission; // 可能会造成权限问题的DNS Query子错误码列表
#pragma mark - Utils Method
- (BOOL)checkNumberArrayValid:(NSArray <NSNumber *> *)numArr;
@end