protobuf消息保持对另一个相同类型的消息的引用

时间:2013-07-04 13:37:56

标签: c++ serialization protocol-buffers self-reference

我有一个Player结构,其中包含指向其最近邻居的指针列表。结构在C ++中可能如下所示:

struct Player {
  string handle;
  vector<Player*> neighbors;
};

我想使用protobuf来序列化这个类的实例。如何编写消息定义来表示上述结构?

2 个答案:

答案 0 :(得分:1)

我认为这样可以解决问题:

message Player
{
  required string handle = 1;

  repeated Player neighbors = 2;
}

我用protobuf-c编译了这个定义,它似乎正在起作用。

答案 1 :(得分:1)

protobuf中没有“参考”的概念。

因此,采取这种方式的最佳方法是:

message Player {
  required string handle = 1;
  repeated string neighborHandles = 2;
};

通常,在完成反序列化后,您会将它们转换为C ++引用。