Google协议缓冲区和stl向量,映射和提升共享指针

use*_*134 5 thrift protocol-buffers

谷歌协议缓冲区是否支持stl向量,映射和提升共享指针?我有一些对象,大量使用stl containers喜欢maps,vectorsboost::shared_ptr.我想使用谷歌协议缓冲区将这些对象通过网络序列化到不同的机器.

我想知道google protobuf是否支持这些容器?另外,如果我使用apache thrift,它会更好吗?我只需要序列化/反序列化数据,不需要apache thrift提供的网络传输.另外apache thrift没有适当的文档也让我失望.

Mar*_*ell 8

协议缓冲区直接处理故意少量的结构; 向量很好地映射到"重复"元素类型,但是如何在C++中呈现这是通过"添加"方法 - 你不(AFAIK)只是将它传递给一个向量.有关详细信息,请参阅此处的 "重复嵌入消息字段" .

重新映射; 没有内置机制,但键/值对很容易用.proto表示(通常键= 1,值= 2)然后通过"重复"处理.

shared_ptr 本身似乎在序列化文件中没什么意义.但是可以将对象(可能)作为消息处理.

请注意,在Google C++版本中会生成DTO图层,因此您可能需要在它们与任何现有对象模型之间进行映射.这通常是微不足道的.

对于某些语言/平台,有针对现有对象模型的protobuf变体.

(对不起,我不能评论节俭 - 我不熟悉它)