码迷,mamicode.com
首页 > 其他好文 > 详细

protobuf坑1

时间:2015-01-31 00:07:18      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

 或者说特性吧,没仔细看protobuf代码,也许我还理解不够。

按照陈硕大牛的这篇帖子的介绍,“它包含了程序编译的时候所链接的全部 protobuf Message types

实际开发过程中发现必须手动调用一下T::descriptor()以后,才会将其类型信息注册到DescriptorPool里面,此后再才

能通过类型名字创建出实例,那么这就有个很蛋疼的问题,难道每添加一条协议,业务代码就得跟着调用一下T::descriptor()么?

再试了一下,发现可以这样:只需要a.proto生成的a.pb.h里面随便某个class调用一下descriptor,那么这个h里面其余的class

就都会被注册到DescriptorPool中,脑洞小开一下的话,就是说再每个proto文件中增加个x_nit协议,然后调用里面的x_init::descriptor()

貌似就能解决这个问题。

哪位有更优雅的方案能推荐一下么?

protobuf坑1

标签:

原文地址:http://www.cnblogs.com/drakefang/p/4263319.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!