BDPParametersManager.h
1.78 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
//
// 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