Как определить файл *.proto с переменной длиной полезной нагрузки?

Я пытаюсь написать свой первый *.proto файл. Это моя попытка:

syntax = "proto3";
package Message;

message Message {
    string name = 1;
    string serial = 2;
    int32 command = 3;

    enum Status {
        GOOD = 0;
        BAD = 1;
    }

    Status status = 4;
    int32 length = 5;

    // end of header
    // start of payload

    int32 data = 6;

    string address = 7;
}

Заголовок имеет длину поля. Это значение определяет длину поля данных в полезной нагрузке. И это моя проблема: поле данных является динамическим, я не могу знать размер сейчас. Я мог бы разделить заголовок и полезную нагрузку на 2 отдельных файла *.proto. Но тогда я все еще не знаю, как динамически установить длину одного из полей.

Заранее спасибо за помощь!

0 ответов

Буфер протокола не позволяет проверять зависимости между полями. Вы должны проверить, если length соответствует длине data сам.

Другие вопросы по тегам