BDPParametersManager.h 1.78 KB
//
//  BDPCommonParameters.h
//  BDPCommonParams
//
//  Created by Zhu,Yusong on 2019/3/5.
//  Copyright © 2019 Baidu. All rights reserved.
//
/**
 * 中台sdk请求参数规范,默认公参推荐使用宏 BBACommonParams
 * wiki:http://wiki.baidu.com/pages/viewpage.action?pageId=706282768#id-0.1%E4%B8%AD%E5%8F%B0sdk%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%E8%A7%84%E8%8C%83-1.appname
 */

#import <Foundation/Foundation.h>

@class BDPParametersConfig, BDPParametersComposer;
@protocol BDPCommonParamsGetter;

NS_ASSUME_NONNULL_BEGIN

// 参数合成器
@interface BDPParametersComposer : NSObject

/// 自定义参数
@property (nonatomic, copy) BDPParametersComposer* (^custom)(NSDictionary *params);

/// 返回自身,只做补充语义完整性
- (instancetype)with;

/// 弱网优化参数
- (instancetype)weaknet;

/// 合成并返回参数
- (NSString *)parameters;

@end

@interface BDPParametersManager : NSObject

/// 是否可以扩展,如果为True,则会接受扩展公参的协议,产品线根据可以根据这个协议增加自己的公参,默认False
@property (nonatomic, assign) BOOL canExtend;

/// /// 是否启用iid
/// iid表示appInstanceID。基于uuid生成,经过加密处理
/// 与cuid store中的instance id一致
/// 默认值为NO
@property (nonatomic, assign, readonly) BOOL iidEnabled;

/// 参数获取器的代理
@property (nonatomic, strong) BDPParametersConfig *config;

/**
 * @brief 单例
 *
 * @return instancetype
 */
+ (instancetype)sharedManager;

/**
 * @brief 初始化,需要产品线自己实现生成器协议
 *
 * @param getter 公参生成器
 */
- (void)setupWithGetter:(id<BDPCommonParamsGetter>)getter;

/**
 * @brief 开始组合公参,并返回组合器
 *
 * @return 组合器
 */
- (BDPParametersComposer *)common;

@end

NS_ASSUME_NONNULL_END