protobuf
2016-07-28 17:39:18 0 举报
Protobuf(Protocol Buffers)是一种轻便高效的结构化数据存储格式,可用于数据交换、存储等场景。它由Google开发,支持多种编程语言,如C++、Java、Python等。与XML和JSON等传统的数据格式相比,Protobuf具有更小的体积和更快的解析速度,因此在网络传输和本地存储方面具有较高的性能优势。 Protobuf使用`.proto`文件来定义数据结构,通过编译生成对应语言的数据访问类。这使得开发者可以专注于业务逻辑的开发,而无需关心底层的数据序列化和反序列化细节。同时,Protobuf还支持版本控制,方便在不同版本的系统之间进行数据迁移和兼容。
作者其他创作
大纲/内容
FieldDescriptor
FileErrorCollector
- AddError()
Factory
- GetPrototype()
Descriptor
Importer
- Import( msg_name )- pool()
1.DiskSourceTree 负责磁盘proto等文件的导入2.FileErrorCollector 处理导入proto时产生的错误,如proto语法错误等3.负责proto文件导入,如指定哪个proto文件需要导入,每个导入的文件编译后变成FileDescription放在pool中4.FileDescriptor 负责描述一个proto文件的信息,比如这个文件的文件名,属于哪个package5.Descriptor描述一个message(不包括sub-message),包含message有哪些字段6.FieldDescriptor描述一个字段(field),比如这个字段是什么类型,是否为数组7.Factor是一个工厂类,负责将一个descriptor转换为一个Message实体,但这个只是const类型的样本,调用这个样本的New函数即可创建对象。8.Message消息实体对象,对应一个proto中的message,这时你可以对这个Message写入具体的数据9.Reflection 消息的反射机制,可以遍历此消息,得到此消息的字段名、数据类型等。比如你要将protobuf转换为json时就 要用到了。sub-message可通过descriptor的FindNestedTypeByName获得。参考:https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/http://www.cnblogs.com/jacksu-tencent/p/3447310.html
DiskSourceTree
- MapPath( path )
Reflection
FileDescriptor
Message
0 条评论
下一页