BBAAPIRequestTaskDispatcher.h 1.55 KB
//
//  BBAAPIRequestTaskDispatcher.h
//  BBAAPIRequest
//
//  Created by chenjia09 on 2020/2/5.
//  Copyright © 2020 Baidu. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "BBAHTTPManager.h"
#import "BBAAPIRequestManagerProtocol.h"
@class BBABaseAPIRequest;

NS_ASSUME_NONNULL_BEGIN

@interface BBAAPIRequestTaskDispatcher : NSObject
@property (nonatomic, strong, readonly) NSString * clientIP;

+ (instancetype)sharedInstance;

- (void)addHTTPManager:(BBAHTTPManager *)httpManager WithTag:(NSString *)tag;

- (void)removeHTTPManagerWithTag:(NSString *)tag;

- (BBAHTTPManager *)httpManagerWithTag:(NSString *)tag;

- (id <BBAAPIRequestManagerProtocol>)managerOfApiRequest:(BBABaseAPIRequest *)apiRequest;

- (void)parseResponseForClientIP:(BBABaseAPIRequest*)apiRequest;
- (void)preprocessRequest:(BBABaseAPIRequest *)apiRequest;
- (void)postprocessResponse:(BBABaseAPIRequest *)apiRequest;
- (void)debugInfoForRequestCompletion:(BBABaseAPIRequest*)apiRequest;

- (NSMutableURLRequest*)urlRequestForRequest:(BBABaseAPIRequest*)apiRequest;
- (void) handleTTFBWithRequest:(BBABaseAPIRequest *)apiRequest;
- (void)handleURLResponseSuccessWithRequest:(BBABaseAPIRequest*)apiRequest
                            withHTTPManager:(BBAHTTPManager *)httpManager;
- (void)handleURLResponseFailWithRequest:(BBABaseAPIRequest *)apiRequest
                         withHTTPManager:(BBAHTTPManager *)httpManager;
- (void)statisticsBusinessMetricsAction:(NSURLSessionTask *)sessionTask
                                metrics:(NSDictionary *)metrics;
@end

NS_ASSUME_NONNULL_END