欢迎来到天天文库
浏览记录
ID:5291210
大小:233.60 KB
页数:13页
时间:2017-12-07
《protobuf开发者指南》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ProtoBuf开发者指南译者:gashero目录ProtoBuf开发者指南11概览11.1什么是protocolbuffer11.2他们如何工作11.3为什么不用XML?41.4听起来像是为我的解决方案,如何开始?51.5一点历史62语言指导72.1定义一个消息类型72.2值类型72.3可选字段与缺省值82.4枚举82.5使用其他消息类型82.6嵌套类型82.7更新一个数据类型82.8扩展82.9包82.10定义服务92.11选项92.12生成你的类93代码风格指导93.1消息与字段名93.2枚举103.3服务104编码104.1一个简单的消息
2、114.2基于128的Varints114.3消息结构114.4更多的值类型114.5内嵌消息114.6可选的和重复的元素114.7字段顺序125ProtocolBuffer基础:C++126ProtocolBuffer基础:Java127ProtocolBuffer基础:Python127.1为什么使用ProtocolBuffer?137.2哪里可以找到例子代码137.3定义你的协议格式147.4编译你的ProtocolBuffer157.5ProtocolBufferAPI157.5.1枚举177.5.2标准消息方法177.5.3解析与串行化
3、177.6写消息187.7读消息207.8扩展ProtocolBuffer217.9高级使用228参考概览239C++代码生成2310C++API2311Java代码生成2312JavaAPI2313Python代码生成2313.1编译器的使用2413.2包2513.3消息2513.4字段2513.4.1简单字段2513.4.2简单消息字段2613.4.3重复字段2713.4.4重复消息字段2813.4.5枚举类型2913.4.6扩展2913.5服务2913.5.1接口2913.5.2存根(Stub)3014PythonAPI3015其他语言30
4、1概览欢迎来到protocolbuffer的开发者指南文档,一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据串行化方法。本文档面向希望使用protocolbuffer的Java、C++或Python开发者。这个概览介绍了protocolbuffer,并告诉你如何开始,你随后可以跟随编程指导(http://code.google.com/apis/protocolbuffers/docs/tutorials.html)深入了解protocolbuffer编码方式(http://code.google.com/apis/proto
5、colbuffers/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/protocolbuffers/docs/style.html)指导都是编写.proto文件。
6、1.1什么是protocolbufferProtocolBuffer是用于结构化数据串行化的灵活、高效、自动的方法,有如XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。1.2他们如何工作你首先需要在一个.proto文件中定义你需要做串行化的数据结构信息。每个ProtocolBuffer信息是一小段逻辑记录,包含一系列的键值对。这里有个非常简单的.proto文件定义了个人信息:messagePerson{requiredstringnam
7、e=1;requiredint32id=2;optionalstringemail=3;enumPhoneType{MOBILE=0;HOME=1;WORK=2;}messagePhoneNumber{requiredstringnumber=1;optionalPhoneTypetype=2[default=HOME];}repeatedPhoneNumberphone=4;}有如你所见,消息格式很简单,每个消息类型拥有一个或多个特定的数字字段,每个字段拥有一个名字和一个值类型。值类型可以是数字(整数或浮点)、布尔型、字符串、原始字节或者其他P
8、rotocolBuffer类型,还允许数据结构的分级。你可以指定可选字段,必选字段和重复字段。你可以在(http://code.goog
此文档下载收益归作者所有