ProtoBuf(Protocol Buffers )是Google的开源的序列化 & 反序列化工具 https://developers.google.com/protocol-buffers/
ProtoBuf C++使用
使用步骤:
- 定义proto文件,文件的内容就是定义我们需要存储或者传输的数据结构,也就是定义我们自己的数据存储或者传输的协议。
- 安装protocol buffer编译器来编译自定义的.proto文件,用于生成.pb.h文件(proto文件中自定义类的头文件)和 .pb.cc(proto文件中自定义类的实现文件)。
- 使用protocol buffer的C++ API来读写消息
protocol buffer 生成的函数, 除了getter和setter之外, 还有:
标准消息函数(Standard Message Methods)
每一个消息(message)还包含了其他一系列函数,用来检查或管理整个消息,包括:
bool IsInitialized() const; //检查是否全部的required字段都被置(set)了值。 |
Debug的API, 包括:
string DebugString() const; //将消息内容以可读的方式输出 |
解析&序列化(Parsing and Serialization)函数, 包括:
bool SerializeToString(string* output) const; //将消息序列化并储存在指定的string中。注意里面的内容是二进制的,而不是文本;我们只是使用string作为一个很方便的容器。 |
使用示例:
//test.cpp |
@ref: Protocol Buffers C++入门教程 - 云+社区 - 腾讯云
varint
@ref: Protobuf 终极教程 @todo