googleprotobuf开发者指南

googleprotobuf开发者指南

ID:33158828

大小:165.00 KB

页数:22页

时间:2019-02-21

googleprotobuf开发者指南_第1页
googleprotobuf开发者指南_第2页
googleprotobuf开发者指南_第3页
googleprotobuf开发者指南_第4页
googleprotobuf开发者指南_第5页
资源描述:

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

1、文档名称:ProtoBuf开发者指南-非官方不完整版ProtoBuf开发指南-非官方不完整版这个文档用于指导开发的,属于非官方发布版本进行选译的,并不完整。供参考使用。1概览欢迎来到protocolbuffer的开发者指南文档,一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据串行化方法。本文档面向希望使用protocolbuffer的Java、C++或Python开发者。这个概览介绍了protocolbuffer,并告诉你如何开始,你随后可以跟随编程指导(http://code.google.com/apis/protocolbuffers/docs/tutori

2、als.html)深入了解protocolbuffer编码方式(http://code.google.com/apis/protocolbuffers/docs/encoding.html)。API参考文档(http://code.google.com/apis/protocolbuffers/docs/reference/overview.html)同样也是提供了这三种编程语言的版本,不够协议语言(http://code.google.com/apis/protocolbuffers/docs/proto.html)和样式(http://code.google.com/apis/p

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

4、息:messagePerson{requiredstringname=1;requiredint32id=2;optionalstringemail=3;enumPhoneType{第22页共22页文档名称:ProtoBuf开发者指南-非官方不完整版MOBILE=0;HOME=1;WORK=2;}messagePhoneNumber{requiredstringnumber=1;optionalPhoneTypetype=2[default=HOME];}repeatedPhoneNumberphone=4;}有如你所见,消息格式很简单,每个消息类型拥有一个或多个特定的数字字段,每个

5、字段拥有一个名字和一个值类型。值类型可以是数字(整数或浮点)、布尔型、字符串、原始字节或者其他ProtocolBuffer类型,还允许数据结构的分级。你可以指定可选字段,必选字段和重复字段。你可以在(http://code.google.com/apis/protocolbuffers/docs/proto.html)找到更多关于如何编写.proto文件的信息。一旦你定义了自己的报文格式(message),你就可以运行ProtocolBuffer编译器,将你的.proto文件编译成特定语言的类。这些类提供了简单的方法访问每个字段(像是query()和set_query()),像是访问

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

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

8、("myfile",ios::in

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

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

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

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