Преобразование между структурами C (C ++ POD) и google protobufs?

У меня есть код, который в настоящее время проходит через многие (иногда вложенные) структуры и массивы C (или C ++ Plain Old Data).

Я хотел бы преобразовать их в / из Google Protobufs. Я мог бы вручную написать код, который конвертируется между этими двумя форматами, но он был бы менее подвержен ошибкам при автоматической генерации такого кода. Каков наилучший способ сделать это? (Это было бы легко в языке с достаточным самоанализом для перебора имен переменных-членов, но мы говорим об этом на C ++)

Одна вещь, которую я рассматриваю, - это написание кода Python, который анализирует структуры C и затем выплевывает файл .proto вместе с кодом C, который копирует данные от члена к члену (в любом направлении) для всех типов, но, возможно, существует лучше ... или, может быть, есть еще один IDL, который уже может генерировать:

.h файл, содержащий все вложенные типы.proto файл, содержащий эквивалентыФайл .c с функциями, которые копируют любое направление между структурами C ++, которые генерирует файл .proto, и структурами, определенными в файле .h

Ответы на вопрос(3)

Ваш ответ на вопрос