BBASMLogAdapterProtocol.h 1.63 KB
//
//  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