Konvertierung zwischen C-Strukturen (C ++ POD) und Google Protobufs?

Ich habe Code, der derzeit viele (manchmal verschachtelte) C- (oder C ++ Plain Old Data-) Strukturen und Arrays umgibt.

Ich möchte diese zu / von Google Protobufs konvertieren. Ich könnte manuell Code schreiben, der zwischen diesen beiden Formaten konvertiert, aber es wäre weniger fehleranfällig, solchen Code automatisch zu generieren. Wie geht das am besten? (Dies wäre in einer Sprache mit ausreichender Selbstbeobachtung einfach, um die Namen der Mitgliedsvariablen durchlaufen zu können, aber es handelt sich um C ++ - Code, über den wir sprechen.)

Eine Sache, die ich erwäge, ist das Schreiben von Python-Code, der die C-Strukturen analysiert und dann eine .proto-Datei ausspuckt, zusammen mit C-Code, der für alle Typen von Mitglied zu Mitglied (in beide Richtungen) kopiert, aber vielleicht gibt es eine Besser so ... oder vielleicht gibt es eine andere IDL, die bereits generiert werden kann:

H-Datei, die alle verschachtelten Typen enthält.proto-Datei mit EntsprechungenC-Datei mit Funktionen, die eine der beiden Richtungen zwischen den von der PROTO-Datei generierten C ++ - Strukturen und den in der H-Datei definierten Strukturen kopieren

Antworten auf die Frage(3)

Ihre Antwort auf die Frage