以前和山哥做过类似的,最近想起来,抽空又看了下 protoc-c。
山哥做的报文流向:
rpc -> lydtree -> motree -> struct
涉及的细节很多
1) lydtree的priv 上挂回调, 数据转换也回把这个回调带过去
2) 因为是线程级,线程之间的数据通信传的可以是一个地址,这个地址要特殊化处理,比如是一个全局变量,或者其它
3) 不同数据类型从一种编码到另一种编码的转换
3) 内存的管理,谁申请,又是谁来释放
4) 线程的同步
5) 层次化转水平化
6) api 的回调,这个有点像 http_parser 的回调
7) 回调的注册
...
想对而言,protoc-c 就内容少了很多,只是 protoMsg -> protoBuffer 的转换