BBASMLogAdapterProtocol.h
1.63 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
//
// BBASMLogAdapterProtocol.h
// BBAMNP
//
// Created by baidu on 2019/6/17.
// Copyright © 2019 Baidu. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "BBASMAdapterBaseImplement.h"
NS_ASSUME_NONNULL_BEGIN
/**
* ubc日志
*/
@protocol BBASMLogAdapterProtocol <NSObject>
@optional
/**
* @brief 获取打点日志并上传
* @param logArray 收集到的日志信息,可能是一条也可能是多条日志
* @param finishBlock 如果对 logArray 数据上传成功或者处理完成将 finishBlock 的result 设置为YES, 否则为NO,
* 如果result 为YES ,我们认为上传成功会将本地数据库的这条记录删除
* 每一个上传任务对应一个 NSURLSessionDataTask ,当触发取消条件的时候可通过 @method cancelUploadRequest 取消
*/
+ (void)uploadLogData:(NSArray *)logArray finishBlock:(void (^ _Nonnull )(BOOL result))finishBlock;
/**
* @brief 取消日志上传任务
* 日志上传必须实现的方法: 当宿主APP退到后台,或者实例销毁的时候会取消当前需要上传的任务
* 将要上传日志的 NSURLSessionDataTask 任务加入到 uploadLogArray 实现上传,上传中断的时候或者应用退到后台会取消保存的上传任务
*
* @example [uploadLogArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
* NSURLSessionDataTask *task = (NSURLSessionDataTask *)obj;
* if (task.state == NSURLSessionTaskStateRunning
* || task.state == NSURLSessionTaskStateSuspended) {
* [task cancel];
* }
* }];
*/
+ (void)cancelUploadRequest;
@end
NS_ASSUME_NONNULL_END