我有一个Player
结构,其中包含指向其最近邻居的指针列表。 C++中的结构可能如下所示:protobuf消息持有引用另一个相同类型的消息
struct Player {
string handle;
vector<Player*> neighbors;
};
我想使用protobuf来序列化此类的实例。我如何写一个消息定义来表示上述结构?
我有一个Player
结构,其中包含指向其最近邻居的指针列表。 C++中的结构可能如下所示:protobuf消息持有引用另一个相同类型的消息
struct Player {
string handle;
vector<Player*> neighbors;
};
我想使用protobuf来序列化此类的实例。我如何写一个消息定义来表示上述结构?
protobuf中没有“reference”的概念。
因此sanest的方式做这将是:
message Player { required string handle = 1; repeated string neighborHandles = 2; };
一般你会然后将它们转换为C++引用您完成反序列化时。
我认为这会做的伎俩:
message Player
{
required string handle = 1;
repeated Player neighbors = 2;
}
我编译的protobuf-c中的定义,它似乎是工作。
这个定义的问题是邻居拥有实例而不是引用。我正在寻找一种方法来表示对另一个对象的引用(如指针)。 –
您可以将playerIdentifier引入播放器并用它来标识邻居。 –
奇怪的是,protobuf.net提供了对引用的一些支持。 –