ZhangDi
ZhangDi
@qinzuoyan ,左言有时间帮忙审核一下pr[#81](https://github.com/baidu/sofa-pbrpc/pull/81)?
@qinzuoyan 谢谢左言,剥离出来的boost的namespace也会修改为rpc的namespace。
# rpc去boost方案 选用boost版本:1.58.0 1. rpc对boost的主要依赖模块为asio、date_time、multi_index等,boost1.58对asio中c++11和clong编译的一些问题进行修复,且在1.58之后的版本中这些模块没有新的修改,可以看出比较稳定。 2. 当前最新版本1.62在今年9月份发布,过新的版本存在隐藏问题的可能性更大,1.58版本在15年4月发布。 **执行方案** 分两个分支: **完全不依赖boost**:抽出的boost在src目录下,使用sofa::pbrpc的namespace。 1. 采用boost工具bcp,自动将rpc依赖的头文件及依赖的代码抽取出来得到初步的依赖子集,大小20M左右。 2. 对抽出的boost代码进一步精简,去除windows平台相关的文件和代码。 3. 使用脚本对精简后的boost 替换namespace为sofa::pbrpc。 4. boost放在src下和 rapidjson 、sofa同级。 **完全依赖boost**:将之前抽出的smart_ptr和system_error的内容去掉,仍旧依赖boost的实现。 **维护方案:** 将依赖boost的版本设为master,不依赖boost的作为另一个分支。 1. 已有的master用户已经依赖boost。 2. 默认情况下自己配置boost版本。 之后维护两个分支,功能升级需要更新到两个分支上去。 @cyshi...
sofa-pbrpc去boost版本的暂时放在[**这里**](https://github.com/zd-double/sofa-pbrpc/tree/no-boost-dependence),大家review一下给点意见。 实现上主要有几点: 1. rpc依赖的boost代码位于 src/sofa/pbrpc/boost下,采用sofa::pbrpc::boost的命名空间 2. src/sofa/pbrpc/boost下代码中防止重复编译的ifndef宏采用SOFA_PBRPC作为前缀。 3. 由于rpc暴露给用户的头文件中存在shared_ptr,如rpc_channel.h、 rpc_client.h等,暂时将高度精简的boost下的smart_ptr也最终拷到output下,目录层级为sofa/pbrpc/boost/smart_ptr。
可以再尝试下还有这个问题,还有问题把详细异常信息贴一下