我有一個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提供了對引用的一些支持。 –