у меня есть Player
структура, которая содержит список указателей на своих ближайших соседей. Структура может выглядеть следующим образом в C ++:
struct Player {
string handle;
vector<Player*> neighbors;
};
Я хочу использовать protobuf для сериализации экземпляров этого класса. Как бы я написал определение сообщения для представления вышеупомянутой структуры?
В protobuf отсутствует понятие «ссылка».
Поэтому самым разумным способом сделать это будет:
сообщение Player { требуемый дескриптор строки = 1; повторяющаяся строка соседейHandles = 2; };
Обычно вы затем конвертируете их в C ++ ссылки, когда закончите десериализацию.
Я думаю, что это бы сработало:
message Player
{
required string handle = 1;
repeated Player neighbors = 2;
}
Я скомпилировал определение с помощью protobuf-c, и оно, похоже, работает.