`
tcspecial
  • 浏览: 913791 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

protobuf extension

阅读更多

 

有时需要扩展公共模块的功能,各个子模块实现各自业务逻辑,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();

 

参考链接:

Google protobuf

 

 

 

 

 

分享到:
评论

相关推荐

    windows protobuf android 编译.doc

    src/google/protobuf/extension_set_heavy.cc\ src/google/protobuf/field_mask.pb.cc\ src/google/protobuf/generated_message_reflection.cc\ src/google/protobuf/io/gzip_stream.cc\ ... include $(BUILD_...

    PHP安装protobuf详解

    - 修改PHP的配置文件(如`/usr/local/php/etc/php.ini`),添加`extension=protobuf.so`。 - 重启PHP-FPM服务,例如`service php-fpm reload`,确保更改生效。 - 最后,通过`php -m | grep 'protobuf'`检查...

    Protobuf.vsix.zip

    VSIX(Visual Studio Extension)是一种用于分发和安装Visual Studio扩展的容器格式。用户只需双击该文件,即可在Visual Studio中安装这个Protobuf支持的扩展。 总结起来,"Protobuf.vsix.zip"是一个针对VS2019的...

    Web逆向实战之protobuf

    `.proto` 文件中可以定义多种数据结构,例如 message、enum、extension 等。在我们的示例中,我们定义了一个名为 `SearchService` 的 message,它包含了五个字段:`getResourcetype`、`getId`、`getReferer`、`getMd...

    开源项目-google-protobuf.zip

    7. **扩展性**:通过扩展消息(Extension Field)功能,用户可以为已存在的消息类型添加自定义字段,实现灵活的扩展。 8. **gRPC**: Protobuf 还是 gRPC 的基础,gRPC 是一个高性能、开源和通用的 RPC 框架,它...

    protoless:Scala的Protobuf序列化库

    - **Extension fields**:支持 Protobuf 扩展字段,使得在不修改原始消息定义的情况下添加新字段成为可能。 - **OneOf support**:对 Protobuf 的 `oneof` 特性提供了优雅的 Scala 表示。 ### 5. 示例应用 在 GRPC...

    为cocos2d-x3.2添加protobuffer2.5.0支持

    在本文中,我们将详细介绍如何为cocos2d-x 3.2版本添加protobuffer 2.5.0的支持,以便利用protobuf的功能进行二进制数据流的序列化和反序列化。首先,确保您已经准备了以下软件:cocos2d-x 3.2、protobuffer 2.5.0、...

    http_extensions:一组http dart软件包的扩展

    :一个http扩展,用于序列化请求正文到protobuf并反序列化来自protobuf的响应内容。 :一个http扩展,用于将基本URL添加到具有相对路径的请求中。 原虫。 :一个http扩展,用于向请求添加标头。

    使用Protocol Buffers的C语言拓展提速Python程序的示例

    在本例中,将介绍如何通过C语言扩展(extension)来加速Python程序中Protobuf的应用。首先,需要了解到Python中使用Protobuf通常会生成原生的Python代码,但这种方法并不适合C++。对于C++,Protobuf能够生成用于快速...

    谷歌师兄的leetcode刷题笔记-hangin-with-php:使用PHP和Beanstalkd发送环聊消息

    extension=protobuf.so 设置 运行 bin/cli_auth_once.php 脚本一次以向 Google 授权并获取刷新令牌。 php ./bin/cli_auth_once.php --email youremail --password password --refresh-token $(pwd)/refresh-token....

    gRPC的PHP客户端

    4. **更新php.ini**:在你的`php.ini`文件中,添加`extension=grpc.so`(或根据你的系统对应的扩展名)。 5. **重启PHP**:最后,重启你的PHP服务器以使改动生效。 ### 二、安装Composer Composer是PHP的一个依赖...

    Python库 | grpcio-1.10.1-cp34-cp34m-manylinux1_x86_64.whl

    "cp34m"标记意味着这个whl文件是为Python 3.4编译的,并且使用了多态扩展(multi-phase extension)。Python的ABI版本标识(如cp34m)确保了库与特定版本的Python解释器兼容。在Python的 ABI 管理下,某些库可以直接...

    coderbufs:不活跃:一个PostgreSQL逻辑解码器输出插件,用于将数据作为协议缓冲区传递

    标签中提到的“postgresql-extension”表明coderbufs是一个PostgreSQL的扩展,用户需要在PostgreSQL服务器上安装和启用这个扩展才能使用。"PostgreSQLC"标签则指明这个插件是用C语言编写的,C语言是PostgreSQL原生...

    java源码blob-book-code:书号

    protobuf PPTV boost.asio 命名管道 LuaBridge msvcrt pattern android 知乎日报第三方客户端 C++ C++ 类型转换 C++ 日期时间 getopt 命令行解析 zlib openssl curl 7z lua msgpack jsoncpp tinyxml Crypto++ boost

    服务器端扩展:一种Qlik服务器端扩展协议,用于通过外部计算引擎的功能扩展Qlik内置表达式库

    服务器端扩展(Server-Side Extension,SSE)是Qlik Sense和QlikView平台中的一种高级功能,旨在增强其内置表达式库的功能。通过这种方式,用户可以利用外部计算引擎的能力来处理更复杂的数据分析和计算任务,从而...

    JAVA中即时通讯内容扩展研究.zip

    SSL/TLS协议可以保证数据在传输过程中的安全性,Java的JSSE(Java Secure Socket Extension)提供了实现SSL/TLS的API。同时,还需要对用户身份进行验证,如使用OAuth2.0等授权协议。 八、性能优化 对于高并发的即时...

    Java Grpc实例创建负载均衡详解

    <artifactId>grpc-protobuf <version>1.17.1 <groupId>io.grpc <artifactId>grpc-stub <version>1.17.1 ``` 然后,在build标签中添加以下插件: ``` <extension> <groupId>kr.motd.maven ...

    hackpra.Burp技巧大全Nicolas_Gregoire

    - Protobuf解码:对于使用Google Protocol Buffers编码的消息,可以使用专门的扩展程序`burp-protobuf-decoder`进行解码,前提是提供一个`.proto`文件作为参考。 #### 五、GUI导航 - **上下文相关的按钮**:Burp ...

    php7的sphinx扩展,适用linux,mac

    1. 检查系统中是否已安装libsphinxclient,如果没有,可以通过包管理器安装,如在Ubuntu上使用`sudo apt-get install libmysqlclient-dev libprotobuf-dev protobuf-compiler libcurl4-openssl-dev`。 2. 如果是版本...

    sphinx扩展,适用linux

    例如,在 Ubuntu 上可以使用 `sudo apt-get install libmysqlclient-dev libprotobuf-dev protobuf-compiler libprotobuf-c-dev libcurl4-openssl-dev libxml2-dev libssl-dev` 来安装必要的依赖。 2. **重新编译 ...

Global site tag (gtag.js) - Google Analytics