# adapter设计架构代码分析
## 代码分析：
主要文件：adapter_manager.cc, adapter_manager.h。

### 类AdapterManager分析：
 * Init(AdapterManagerConfig &configs)函数：根据传入的AdapterManagerConfig类，配置ros节点，包括创建Nodehandle，创建订阅或者发布话题。
 * Init(const std::string &adapter_config_filename)函数：根据传入的配置文件路径，通过调用Init(AdapterManagerConfig &configs)函数，配置ros节点。
 * Initialized()函数：返回此ros nodehandle是否已经初始化，上两个函数中有设置。
 * CreateTimer()函数创建一个周期timer，以一个类成员函数作为超时函数，在RTK localization函数中有使用到。
 * node_handle_指针，指向node handle指针，后续话题的发布都是基于此。
 * Enable##name()函数：创建nodehandle和topic，也就是init调用的函数。
 * Add##name##Callback函数：添加回调函数。name换成相应的模块名字。
 * observers_变量和Observe()函数：//TODO
### 类AdapterManager使用：
 * adapter可用于创建node handle及其topic，可通过配置文件配置。
 * 使用时只需要创建相应的配置文件（可参考/apollo/modules/perception/conf/adapter.conf，及相应的BUILD文件），
 * 调用接口（可参考/apollo/modules/perception/perception.cc中的Init()函数）。
