欢迎来到天天文库
浏览记录
ID:8804328
大小:24.15 KB
页数:6页
时间:2018-04-08
《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:"<
此文档下载收益归作者所有