Есть ли способ сохранить массив с помощью буфера протокола Google в Cpp без повторного использования. Мне нужно хранить и отправлять буфер (размером 640x480x2), состоящий из данных изображения. Также, как хранить данные массива uint16_t, используя буфер протокола ..?
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#fields. Я бы порекомендовал использовать uint32
тип. Учитывая, что protobuf кодирует значения в varint, сообщение не будет содержать 2 байта нулей.
Других решений пока нет …