Тип Qpid Variant для обработки байтовых массивов Переполнение стека

Я работаю над проектом, и мне нужно иметь возможность отправлять байтовые массивы через Qpid, но Variant понятия не имеет, что такое массив. Есть ли способ, которым я могу преобразовать байтовый массив в нечто Variant, например, Variant :: list для unit8 или Variant :: string, тогда, когда я получу ответ, я смогу преобразовать строку или список обратно в байт []?

Спасибо,

0

Решение

Я бы использовал qpid::types::Variant::List, Конвертировать все ваши байты (я полагаю, вы используете unsigned char) чтобы uint8_t а затем добавить их в список.

Пример:

unsigned char bytesToSend[] = {104, 101, 108, 108, 111}; /* "hello" */
int lengthOfArray = sizeof(bytesToSend)/sizeof(byteToSend[0]);
qpid::types::Variant::List lstToSend;
for(int i = 0; i < lengthOfArray; i++){
uint8_t thisByte = (uint8_t)bytesToSend[i];
lstToSend.push_back(qpid::types::Variant(thisByte));
}
qpid::messaging::Message msg;
qpid::messaging::encode(lstToSend, msg);
yourSender.send(msg, false); /* change false to true if you want to sync with the broker. */

Я не проверял это, но он должен предоставить общий обзор.

Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать, и я постараюсь ответить на них как можно лучше.


Рекомендации:

1

Другие решения


По вопросам рекламы [email protected]