`

c# - Google Protocol Buffer, write proto files

    博客分类:
  • C#
c# 
阅读更多

You specify how you want the information you're serializing to be structured by defining protocol buffer message types in .proto files. Each protocol buffer message is a small logical record of information, containing a series of name-value pairs. The detailed language guide can be found 

 


As a walk-through, we create an Echo message which has three fields.

content: type is strnig and multiplicity is [1..1]
value: type is int32 and multiplicity is [0..1]
value_array: type is int32 and multiplicity is [0..*]

so with this in mind, you may come up with the following definition.

    package sample;
    
    message Echo {
      required string content = 1;
      optional int32 value = 2;
      repeated int32 value_array = 3;
    }
 

and one word on the union approach.


A key difference between GPB and XML is that GPB messages are not self describing. This means that the process receiving the message has to know what type it is before parsing. While there are cases where there is only one type of message being sent on a connection, the majority of applications send and receive multiple types of messages. So how do you make sure that the recipient application knows how to decode your message? One solution is to create a wrapper message that has one optional field for each possible message type. For example, if you have message types Foo, Bar, and Baz, you can combine them with a type like:

 message OneMessage {
      optional Foo foo = 1;
      optional Bar bar = 2;
      optional Echo echo = 3;
    }
 

分享到:
评论

相关推荐

    cocos2d-x protocol buffer 直接可以用的工程文件。

    头文件包含了Protocol Buffer的类定义和API,如`google/protobuf/message.h`,`google/protobuf/descriptor.h`等,这些使得开发者能够定义数据结构(.proto文件),生成相应的C++代码,并进行序列化和反序列化操作。...

    cocos2d-x protocol buffer android 工程

    Protocol Buffer(简称protobuf)是Google推出的一种数据序列化协议,它能够将结构化数据序列化,可用于数据存储、通信协议等方面。本项目结合了cocos2d-x与protobuf,旨在为Android平台的游戏开发提供高效的数据...

    proto-google-common-protos-1.17.0-API文档-中文版.zip

    赠送jar包:proto-google-common-protos-1.17.0.jar; 赠送原API文档:proto-google-common-protos-1.17.0-javadoc.jar; 赠送源代码:proto-google-common-protos-1.17.0-sources.jar; 赠送Maven依赖信息文件:...

    protocol buffer

    Protocol Buffer(简称protobuf)是Google开发的一种数据序列化协议,它是跨平台、语言无关的,用于结构化数据的高效序列化方法。protobuf提供了一种方式将数据结构定义为.proto文件,然后可以使用protobuf编译器...

    PyPI 官网下载 | wix-protos-proto-duplexer-api-proto-0.0.1.tar.gz

    "proto"通常是protobuf(Protocol Buffers)的缩写,这是一种由Google开发的数据序列化协议,用于高效地存储和交换结构化数据。"duplexer"可能指的是一个能够同时处理双向通信的组件,这在设计复杂的网络服务时非常...

    数据交换格式-protocol buffer

    Protocol Buffer是Google开发的一种高效、灵活且跨平台的数据序列化协议,用于结构化数据的序列化,类似于XML、JSON,但更小、更快、更简单。它能够将结构化的数据序列化,可用于数据存储、通信协议等方面。Protocol...

    Protocol_Buffer官网文档中文版

    ### Protocol_Buffer官网文档中文版知识点总结 #### 一、简介与概览 - **Protocol Buffer**是一种用于数据序列化的高效工具,支持多种编程语言(如Java、C++、Python等),能够实现数据的有效存储和传输。 #### ...

    Google Protocol Buffer的2.5.jar和 proto.exe 和IDEA的Proto插件

    Google Protocol Buffer(简称protobuf)是Google推出的一种高效的数据序列化协议,它允许开发者定义数据结构,然后生成可以在各种数据平台之间交换数据的代码。protobuf的主要优势在于它的效率、跨平台性和可扩展性...

    01 Protocol Buffer技术详解(语言规范).doc

    Protocol Buffer 使用 `.proto` 文件来定义消息结构,例如 `MyMessage.proto`。在 `.proto` 文件中,我们可以定义消息结构、字段类型、字段名称等信息。 ``` message LogonReqMessage { required int64 acctID = 1...

    Protocol Buffer sublime text 3插件

    Protocol Buffer是Google开发的一种数据序列化协议,它允许开发者定义数据结构,并在各种数据平台之间交换这些数据。Sublime Text 3是一款广受欢迎的代码编辑器,拥有丰富的插件库来增强其功能。"Protocol Buffer ...

    daas-dac-backend-2.2.0-proto.jar

    daas-dac-backend-2.2.0-proto.jar

    daas-sabot-kernel-2.2.0-proto.jar

    daas-sabot-kernel-2.2.0-proto.jar

    ProtocolBuffer详细使用文档

    - 使用 Protocol Buffer 语法描述需要存储的数据类型(.proto 文件),这一步骤至关重要,因为 .proto 文件是整个数据模型的基础。 - 使用 Protocol Buffer 编辑器编译 .proto 文件,生成对应的平台代码文件。这一...

    protocolbuffer

    ProtocolBuffer,简称PB,是由Google开发的一种数据序列化协议,它是Google的一种二进制数据交换格式,用于结构化数据的序列化。Protocol Buffers的设计目标是替代XML等传统数据交换格式,提供更高效、更小的数据...

    Protocol Buffer编译工具包

    Protocol Buffer(简称PB)是Google开发的一种数据序列化协议,用于高效地编码和解码结构化数据。它提供了一种跨平台、语言无关的方式,使得应用程序可以方便地存储、交换和解析数据。Protocol Buffer文件(通常扩展...

    Protocol Buffer

    Protocol Buffer是Google开发的一种数据序列化协议,它提供了一种高效、跨平台的方式来存储和传输结构化数据。Protocol Buffer的主要功能是将复杂的数据结构转换为二进制流,以便在网络中高效地传输或者持久化存储。...

    android-test-plugin-host-additional-test-output-proto-30.3.1-sources.jar

    android-test-plugin-host-additional-test-output-proto-30.3.1-sources.jar

    Google protocol buffer 开发指南

    Google Protocol Buffer(简称Protobuf)是一种由Google开发的跨语言、跨平台的序列化框架,主要用于数据的序列化、反序列化,是一种更灵活、高效、自动化的机制。相比于XML等数据交换格式,Protocol Buffer具有更小...

    Protocol Buffer 3.0 C++

    Protocol Buffer是Google开发的一种数据序列化协议,它允许开发者定义数据结构,并将其转换为二进制格式进行存储或网络传输。Protocol Buffer 3.0 (简称protobuf) 是该技术的第三个主要版本,提供了更强大的功能和...

Global site tag (gtag.js) - Google Analytics