сообщение protobuf, содержащее ссылку на другое сообщение того же типа

у меня есть Player структура, которая содержит список указателей на своих ближайших соседей. Структура может выглядеть следующим образом в C ++:

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

Я хочу использовать protobuf для сериализации экземпляров этого класса. Как бы я написал определение сообщения для представления вышеупомянутой структуры?

1

Решение

В protobuf отсутствует понятие «ссылка».

Поэтому самым разумным способом сделать это будет:

сообщение Player {
требуемый дескриптор строки = 1;
повторяющаяся строка соседейHandles = 2;
};

Обычно вы затем конвертируете их в C ++ ссылки, когда закончите десериализацию.

1

Другие решения

Я думаю, что это бы сработало:

message Player
{
required string handle = 1;

repeated Player neighbors = 2;
}

Я скомпилировал определение с помощью protobuf-c, и оно, похоже, работает.

1

По вопросам рекламы [email protected]