ex.proto[code]package My; message Person { optional uint32 id = 1[default = 1]; }[/code]test.cpp[code] My::Person p1; if(p1.has_id()) { cout << "has" << endl; } else cout << p1.id() << endl;[/code]为什么optional 的id字段没有设置 却有值,方法has的 原理 是什么,实在不解
客户端lua,通信协议是protobuf,以前用网易的proto-gen-lua,使用过程遇到些问题需要绕,比如: 1、每次更改、增加proto都要生成新的文件,代码规模剧增 2、由于lua本身,每个文件最大文件内全局local变量不能超过200个,所以当proto规模太大时,生成的 lua文件就不能用,需要把proto拆分 3、我之前做proto-gen-lua的集成,好像使用protobuf2.5的不行,被迫只能用2.4了,然后对proto里message 的格式支持不全,比...
mutable_XXX 得到的东西, 若后来不需要进行释放, 调用 release_xxx 后是不是还需要自己 delete 一把, 看他自己生成的源码, 只是内部成员设成 NULL 然后将原来指针返回了; 妈的貌似之前所有诸如此类的地方全部内存泄漏了
在做一款SNS游戏,PC、手机均支持。为了减少手机版传输流量和后台cache空间,服务器采用protobuf 2.4.1版本做用户数据的序列化。 但是PC的flash前端同学只找到了protobuf 2.2版的开源支持。 不知道protobuf是否支持一端用2.4版本,另一端用2.2版本?
message CGoods { repeated CGoodType lsttype = 1; } lsttype.元素(idx).delete ? 似乎只有Clear
SPDataPickle 是一个用于在 C语言的结构体和 xml/json 之间做自动转化的库。
http://code.google.com/p/spdatapickle
http://spdatapickle.googlecode.com/files/spdatapickle-0.5.src.tar.gz
大家可能对 google 的 protocol buffers 都早有耳闻。SPDataPickle 和 protobuf 很相似。
仿照 google protobuf 的例子,也来一个 Person 的简单例子。
对应 a.proto ,要写一个 a.xml
[code]