Как хранить большой буфер / массив (char/int), используя буфер протокола в cpp...?
Есть ли способ сохранить массив с помощью буфера протокола Google в Cpp без повторного использования. Мне нужно хранить и отправлять буфер (размером 640x480x2), состоящий из данных изображения. Также, как хранить данные массива uint16_t, используя буфер протокола..?
1 ответ
- В протобуфе
repeated
знак равноarray
, Я не понимаю, почему вы не можете использоватьrepeated uint32 img = field_num
Если вы действительно хотите сохранить в байтовом массиве, вы можете попробовать
pb.set_mybytearray( std::string( data, data_length ) );
Протобуф не поддерживает
uint16
: https://developers.google.com/protocol-buffers/docs/reference/proto3-spec. Я бы порекомендовал использоватьuint32
тип. Учитывая, что protobuf кодирует значения в varint, сообщение не будет содержать 2 байта нулей.