Как работает функция ParseFromArray в C ++ и как ее можно использовать для чтения двоичного файла в protobuf? - PullRequest
0 голосов
/ 01 апреля 2020

Я немного не уверен, как именно работает функция ParseFromArray (...) в C ++. Что он делает именно так и как может быть использована собственность? Например, если я пытаюсь прочитать двоичный файл в protobuf, как я могу это сделать, используя ParseFromArray (...). Любая помощь приветствуется.

1 Ответ

0 голосов
/ 01 апреля 2020

Обычно, если вы хотите проанализировать протобуф из файла, вы должны убедиться, что вы открыли файл в двоичном режиме и затем вызвали ParseFromIstream.

ParseFromArray и ParseFromString (которые отличаются только типом данных своего аргумента) используются для анализа protobuf, которые уже находятся в памяти. Возможно, вы захотите сделать это, если protobuf является только частью файла, и вы знаете, как извлечь байты. Если вы извлекаете (или читаете) байты как std::string, вы можете использовать ParseFromString, но большую часть времени вы будете использовать std::istream::read для чтения двоичных файлов, и эта функция считывает данные в буфер (который является массивом char). Затем вы должны вызвать ParseFromArray с начальным адресом буфера (приведенным к void*) и его длиной.

...