5

通信プロトコルを実装するために Flatbuffers をチェックしています。メッセージが受信されると、私の場合、いくつかの異なるテーブルが含まれている場合があります。私が正しく理解していれば、Flatbuffers でこれを達成する方法は、ユニオン内に可能なそれぞれ異なるテーブルを持つ「ルート」テーブルを使用することです。

私の場合、着信タイプは既にわかっています (タイプはヘッダーの一部です) => 必ずしも各タイプを単一のテーブル内に配置できる必要はありません。ただし、複数のテーブルを「ルート」タイプとしてマークすることはできないようです。Fooこれは、テーブルを定義した場合、デシリアライゼーションのメソッドまたはメソッドのBarいずれかのみを取得でき、両方を取得できないことを意味します。GetFoo()GetBar()

異なるスキーマ ファイル間で定義を分割することも可能であると想定していますが、それらはいくつかのサブクラスを共有するため、共通の定義用の共有スキーマ ファイルも必要になります。これは、単純なケースでは必要以上に複雑なようです。

Flatbuffers を使用して複数の異なる型を逆シリアル化できる別の方法はありますか?

4

1 に答える 1