BBAAPIRequestSubClassManager.h
2.82 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
//
// BBAAPIRequestSubClassManager.h
// BBAAPIRequest
//
// Created by chenjia09 on 2018/9/21.
//
#import "BBAAPIRequestManager.h"
#import "BBAAFNetworkingRequestManager.h"
@class BBABaseAPIRequest;
@interface BBAAPIRequestManager ()
@property (nonatomic, strong) NSMapTable * requestHashMap;
@property (nonatomic, assign, getter=isEnableTimeOutTurbonetLog) BOOL enableTimeOutTurbonetLog;
// Don't override
#pragma mark tasks
- (id)getTagForTask:(NSURLSessionTask*)task;
- (void)lockTaskList;
- (void)unlockTaskList;
// Override
#pragma mark Requests
// 对请求对象进行预处理
- (void) preprocessRequest:(BBABaseAPIRequest *)apiRequest;
// 对响应对象进行后处理
- (void) postprocessResponse: (BBABaseAPIRequest *)apiRequest;
- (void)removeRequestFromList:(BBABaseAPIRequest *)request;
#pragma mark Metrics
- (void)collectMetricsDidRequestStart:(BBABaseAPIRequest *)apiRequest;
- (void)collectMetricsDidRequestEnd:(BBABaseAPIRequest *)apiRequest;
- (void)collectURLSessionMetrics:(NSURLSessionTaskMetrics *)taskMetrics withRequest:(BBABaseAPIRequest *)apiRequest API_AVAILABLE(ios(10.0));
#pragma mark Error
- (void)parseNetworkError:(NSError *)err withRequest:(BBABaseAPIRequest *)apiRequest;
#pragma mark - Cronet
- (NSDictionary *)collectCronetHeaders:(NSDictionary *)metricsHeader withRequest:(BBABaseAPIRequest *)apiRequest;
- (BOOL)isInjectedWithCronet:(NSURLSession *)session;
#pragma mark 数据打点
- (void) handleURLResponseSuccessWithRequest:(BBABaseAPIRequest*) apiRequest;
- (void) handleURLResponseFailWithRequest:(BBABaseAPIRequest*) apiRequest;
- (void) handleTTFBWithRequest:(BBABaseAPIRequest *)apiRequest;
- (void) statisticsBusinessTotalAction: (BBABaseAPIRequest *) apiRequest;
- (void) statisticsBusinessSuccessAction: (BBABaseAPIRequest *) apiRequest;
- (void) statisticsBusinessFailAction : (BBABaseAPIRequest *) apiRequest;
- (void) statisticsBusinessDNSStateAction : (BBABaseAPIRequest *) apiRequest state: (NSString *) state;
- (void) handleTaskCompletion: (NSURLSessionTask *) task response: (NSURLResponse *) response responseObject: (id) responseObject error: (NSError *) error;
#pragma mark DEBUG
- (void) debugInfoForRequestStart: (BBABaseAPIRequest*) apiRequest;
- (void) debugInfoForRequestCompletion: (BBABaseAPIRequest*) apiRequest;
#pragma mark Quic
- (BOOL) isQuicRequest: (BBABaseAPIRequest *) apiRequest;
#pragma mark Multipath
- (BOOL)isBind4GRequest:(BBABaseAPIRequest *)apiRequest;
- (void)storeResumeData:(NSData *)data withApiRequest:(BBABaseAPIRequest *)apiRequest;
@end
@interface BBAAFNetworkingRequestManager ()
#pragma mark - Callbacks
// Don't override
- (void) bindCallbacks: (BBABaseAPIRequest *)request withSessionManager: (AFHTTPSessionManager *) sessionManager;
@end
@interface BBANSURLSessionRequestManager ()
@property (nonatomic, readonly, strong) dispatch_queue_t sdtQueue;
@end