написать несколько протобуф-сообщений: 1 сообщение с 1 повторным атрибутом или написать разные сообщения? - PullRequest
0 голосов
/ 05 июня 2019

Мне нужно написать несколько сообщений protobuf в файл.

Я видел сообщение о writeDelimitedFrom и parseDelimitedFrom в C ++ и задавался вопросом, лучше ли его использовать (или что-то подобноеэто другой стиль разграничения) или создайте «супер-сообщение», содержащее только сообщение, которое мне нужно умножить для записи в качестве повторяющегося атрибута.

syntax = "proto2";
package test;

message myMessage {
  required int32 TimeStamp = 1;
}
message Container {
  repeated myMessage messages = 1;
}

Интересно ли написать несколько myMessage в файлс чтением / записью DelimitedFrom или одним Container с повторным messages?

Я думаю, что использование чтения / записи DelimitedFrom более оптимизировано (так как я могу добавить только последнее сообщение), но использование повторного атрибута проще, ноSerializeToOstream Я думаю, что должен передать все Container.
Я не думаю, что возможно сериализовать только часть сообщения, чтобы добавить его в выходной файл, поскольку я его никогда не видел, но я могу ошибаться

1 Ответ

0 голосов
/ 05 июня 2019

Как и вам грустно, возможны оба варианта.

В случае нескольких сообщений myMessages контейнер является простым решением.Это потому, что вам не нужно писать код, который выбирает отдельные сообщения при чтении файла.

Да, вы должны пройти весь контейнер.Именно здесь в игру вступает количество моих сообщений.Если это большое число, вероятно, лучше сериализовать их по одному myMessage за раз.Присоединение к файлу и, возможно, сброс на диск.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...