protobuf的消息保持参照相同类型的另一消息(protobuf message holding

2019-10-18 08:30发布

我有一个Player持有指针到其最近的邻居的列表结构。 该结构可能在C ++如下:

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

我想使用的protobuf序列化该类的实例。 我怎么会写一个消息定义来表示上述结构?

Answer 1:

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

因此,sanest的方式做这将是:

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

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



Answer 2:

我认为这会做的伎俩:

message Player
{
  required string handle = 1;

  repeated Player neighbors = 2;
}

我编译的protobuf-c中的定义,它似乎是工作。



文章来源: protobuf message holding reference to another message of same type