protobuf extension
程序员文章站
2022-05-27 22:40:30
...
有时需要扩展公共模块的功能,各个子模块实现各自业务逻辑,protobuf 提供了extensions用于处理该场景。
公共协议comm_info.proto
package test; message CommReq { optional int id = 1; extensions 10000 to 12000; // 预留[10000,12000]用于扩展 }
业务模块user_info.proto
import "pb/comm_info.proto"; package test; message UserInfo { optional uint32 dwIntf = 1; }
c++调用方式:
// 设置扩展字段 CommReq sReq; UserInfo *stUserInfo = sReq.MutableExtension(test::stUserInfo); stUserInfo->set_ddwnonce(msg->nonce()); stUserInfo->set_ddwappid(msg->appid); // 获取扩展字段 int srvid = sReq.GetExtension(test::stUserInfo).dwintf();
参考链接:
上一篇: c++11 chrono
下一篇: c++11 chrono
推荐阅读
-
js protobuf 实例对象在JSON转换时遇到的问题
-
php扩展Tokenizer PHP Extension找不到!
-
extension - ubuntu环境php5.4使用ext_skel无法生成so扩展
-
Linux跨平台编译安卓版本protobuf库——趟坑记录
-
extension - php扩展无法在apache中加载
-
PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0
-
php-extension - php_printer.dll中的create_font 方法,字体宽高单位与打印纸宽度的关系
-
解决Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in
-
PHP Extension开发(Zephir版本)
-
【C# / Extension】 扩展方法