protocolbuffers官方文档-开发指南

protocolbuffers官方文档-开发指南

ID:8804328

大小:24.15 KB

页数:6页

时间:2018-04-08

protocolbuffers官方文档-开发指南_第1页
protocolbuffers官方文档-开发指南_第2页
protocolbuffers官方文档-开发指南_第3页
protocolbuffers官方文档-开发指南_第4页
protocolbuffers官方文档-开发指南_第5页
资源描述:

《protocolbuffers官方文档-开发指南》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、https://developers.google.com/protocol-buffers/docs/overview开发指南欢迎来到protocolbuffer的开发者指南文档,一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据序列化方法。本文档是面向计划将protocolbuffer使用的到自己的Java、C++或Python应用程序中的开发者的。这个概览介绍了protocolbuffer,并告诉你如何开始,你随后可以跟随编程指导(https://developers.google.com/protocol-buffers/docs/tutor

2、ials)去深入研究protocolbuffer编码方式(https://developers.google.com/protocol-buffers/docs/encoding)。同时API参考文档(https://developers.google.com/protocol-buffers/docs/reference/overview)也是提供了这三种编程语言的版本,以及可以参考语言指南(https://developers.google.com/protocol-buffers/docs/proto)和样式指南(https://developers.googl

3、e.com/protocol-buffers/docs/style)去编写 .proto 文件。什么是protocolbufferProtocolBuffer是用于结构化数据序列化的灵活、高效、自动的方法,类似XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。他们如何工作你首先需要在一个.proto文件中定义你需要做序列化的数据结构信息。每个ProtocolBuffer信息是一小段逻辑记录,包含一系列的键值对。这里有个非常简单的.proto文件定义了个人信息:

4、messagePerson{requiredstringname=1;requiredint32id=2;optionalstringemail=3;enumPhoneType{MOBILE=0;HOME=1;WORK=2;}messagePhoneNumber{requiredstringnumber=1;optionalPhoneTypetype=2[default=HOME];}repeatedPhoneNumberphone=4;}有如你所见,消息格式很简单,每个消息类型拥有一个或多个特定的数字字段,每个字段拥有一个名字和一个值类型。值类型可以是数字(整数或浮

5、点)、布尔型、字符串、原始字节或者其他ProtocolBuffer类型,还允许数据结构的多层次嵌套。你可以指定可选字段,必选字段和重复字段。你可以在(https://developers.google.com/protocol-buffers/docs/proto)找到更多关于如何编写.proto文件的信息。一旦你定义了自己的报文格式(message),你就可以运行ProtocolBuffer编译器,将你的.proto文件编译成特定语言的类。这些类提供了简单的方法访问每个字段(像是name()和set_name()),像是访问类的方法一样将结构序列化或反序列化。例如你

6、可以选择C++语言,运行编译如上的协议文件生成类叫做Person。随后你就可以在应用中使用这个类来序列化的读取报文信息。你可以这么写代码:Personperson;person.set_name("JohnDoe");person.set_id(1234);person.set_email("jdoe@example.com");fstreamoutput("myfile",ios::out

7、ios::binary);person.SerializeToOstream(&output);然后,你可以读取报文中的数据:fstreaminput("myfile",ios:

8、:in

9、ios::binary);Personperson;person.ParseFromIstream(&input);cout<<"Name:"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。