@oleg0xff

Как используя protobuf принять объект неизвестного типа?

У меня такая задача - два приложения будут обмениваться данными по сети с помощью protobuf. В protobuf есть возможность сохранить/восстановить обект из сетевого потока с помощью функции ParseFromIstream / SerializeToOstream. Проблема в том что она член класса объекта - т.е. я заранее должен знать какого класса объект мне придёт. А я этого не знаю, они приходят в случайном порядке. Мне надо чтобы была возможность читать поток, понимать какой объект сейчас пришел и создавать соответствующий класс. Раньше я это делал с помощью собственного протокола, но это вроде как нехорошо, надо бы сделать чрез какой-нибудь стандартный вроде protobuf. Пока не могу придумать как это сделать с помощью protobuf, и уже есть мысли использовать вместо него JSON, хотя в остальном protobuf подходит нааамного лучше чем JSON. Буду признателен за помощь.
  • Вопрос задан
  • 254 просмотра
Пригласить эксперта
Ответы на вопрос 1
terrier
@terrier
Самый разумный путь здесь дописывать в начало сообщения номер protobuf-типа, а потом уже сам protobuf-объект. Понятно, что предварительно обе стороны должны договориться какому номеру какой тип соответсвует.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы