Konwersja między strukturami C (C ++ POD) a protokołami google?

Mam kod, który obecnie przekazuje wiele (czasem zagnieżdżonych) struktur C i (lub C ++ Plain Old Data) i tablic.

Chciałbym przekonwertować je do / z google protobufs. Mogłem ręcznie napisać kod, który konwertuje między tymi dwoma formatami, ale byłoby mniej podatne na błędy, aby automatycznie wygenerować taki kod. Jak najlepiej to zrobić? (Byłoby to łatwe w języku z wystarczającą introspekcją, aby przejrzeć nazwy zmiennych składowych, ale to jest kod C ++, o którym mówimy)

Jedną rzeczą, którą rozważam, jest napisanie kodu pythona, który analizuje struktury C, a następnie wypuszcza plik .proto wraz z kodem C, który kopiuje z członka do członka (w dowolnym kierunku) dla wszystkich typów, ale może istnieje lepszy sposób ... a może jest inny IDL, który już może wygenerować:

.h plik zawierający wszystkie typy zagnieżdżone.proto plik zawierający odpowiedniki.c plik z funkcjami, które kopiują oba kierunki między strukturami C ++ generowanymi przez plik .proto i struktury zdefiniowane w pliku .h

questionAnswers(3)

yourAnswerToTheQuestion