現在、多くの (ネストされている場合もある) C (または C++ Plain Old Data) 構造体と配列を渡すコードがあります。
これらをGoogle protobufsとの間で変換したいと思います。これら 2 つの形式間で変換するコードを手動で作成することもできますが、そのようなコードを自動生成した方がエラーが発生しにくくなります。これを行う最善の方法は何ですか?(これは、メンバー変数の名前を反復処理するのに十分なイントロスペクションを備えた言語では簡単ですが、これは私たちが話している C++ コードです)
私が検討していることの 1 つは、C 構造体を解析してから .proto ファイルを吐き出す Python コードと、すべての型についてメンバーからメンバーへ (いずれかの方向で) コピーする C コードを作成することです。より良い方法...または、すでに生成できる別のIDLがあるかもしれません:
- ネストされたすべての型を含む .h ファイル
- 同等のものを含む .proto ファイル
- .proto ファイルが生成する C++ 構造体と .h ファイルで定義された構造体の間でいずれかの方向をコピーする関数を含む .c ファイル