¿Conversión entre C structs (C ++ POD) y google protobufs?

Tengo un código que actualmente pasa por una gran cantidad de estructuras y matrices C (o C ++ Plain Old Data) (a veces anidadas).

Me gustaría convertir estos a / desde protobufs de google. Podría escribir manualmente el código que convierte entre estos dos formatos, pero sería menos propenso a errores generar automáticamente dicho código. ¿Cuál es la mejor manera de hacer esto? (Esto sería fácil en un lenguaje con suficiente introspección para iterar sobre los nombres de las variables miembro, pero estamos hablando de un código C ++)

Una cosa que estoy considerando es escribir el código de Python que analiza las estructuras C y luego escupe un archivo .proto, junto con el código C que copia de miembro a miembro (en cualquier dirección) para todos los tipos, pero tal vez haya una Mejor manera ... o tal vez hay otro IDL que ya puede generar:

Archivo .h que contiene todos los tipos anidadosarchivo .proto que contiene equivalentesArchivo .c con funciones que copian cualquier dirección entre las estructuras C ++ que genera el archivo .proto y las estructuras definidas en el archivo .h

Respuestas a la pregunta(3)

Su respuesta a la pregunta