Player
最も近い隣人へのポインターのリストを保持する構造があります。C++ では、構造は次のようになります。
struct Player {
string handle;
vector<Player*> neighbors;
};
このクラスのインスタンスをシリアル化するために protobuf を使用したいと考えています。上記の構造を表すメッセージ定義をどのように記述すればよいでしょうか?
Player
最も近い隣人へのポインターのリストを保持する構造があります。C++ では、構造は次のようになります。
struct Player {
string handle;
vector<Player*> neighbors;
};
このクラスのインスタンスをシリアル化するために protobuf を使用したいと考えています。上記の構造を表すメッセージ定義をどのように記述すればよいでしょうか?
これでうまくいくと思います:
message Player
{
required string handle = 1;
repeated Player neighbors = 2;
}
protobuf-c で定義をコンパイルしたところ、動作しているようです。
protobuf には「参照」という概念はありません。
したがって、それを行う最も健全な方法は次のとおりです。
メッセージプレイヤー{ 必要な文字列ハンドル = 1; 繰り返される文字列 neighborHandles = 2; };
通常、逆シリアル化が完了したら、それらを C++ 参照に変換します。