Как десериализовать сообщение Кафки в Avro struct, используя в конечном итоге libserdes?

У меня есть несколько авромасел и соответствующие codec_traits<> сооружения. Я использую libserdes + avro для их сериализации через шаблонную версию метода AvroImpl :: serialize () из Serdes.cpp, размещенного в нашем коде. Создание такой локальной версии шаблона было легко. Но создание реплики шаблона AvroImpl :: deserialize () из того же файла кажется проблематичным.

В потребителе я могу декодировать наши сообщения в JSON, но они нужны мне в двоичном виде, в наших исходных структурах C ++. Второе декодирование обратно из JSON не является приемлемым решением.

Я вижу, что каждый avro codec_traits<> Структура имеет метод decode (), также есть метод шаблона decode () в файле specific.hh, но как заставить все это работать с исходным двоичным сообщением? Пример для вывода в формате JSON использует avro :: GenericDatum для получения результата, прежде чем декодировать его в JSON. Есть ли способ перевести / десериализовать avro :: GenericDatum в конкретную структуру, если прямая десериализация невозможна?

Я предпочитаю решение не использовать C ++ 11 или более новые функции.

0

Решение

Задача ещё не решена.

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector