2017-11-22 9 views
0

フラットバッファでデータを表現しました。現在、フラットバッファのオブジェクトの大きなコレクションをいくつかの小さな部分に分割しているという問題がありました。フラットバッファオブジェクトのディープコピー方法

単純な方法は、各部分に対してフラットバッファビルダを作成し、そのビルダにオブジェクトを書き込むことです。しかし、オブジェクトが少し複雑な場合は、structによってデータ構造体をコピーするのは非常に面倒な作業です。

フラットバッファは相対オフセットを格納するので、理想的には、オブジェクトを別のフラットバッファインスタンスにコピーするために単純にバイトバッファをコピーすることができます。既にそれをコピーするための何かがありますか?私は今、Javaを使用しています。おかげ

などのおかげ

答えて

0

これは、テーブルとその子がメモリにneccessarily連続していないことから、あなたが考えるよりも複雑であり、他のテーブルとのvtableを共有することができ、

は、最も簡単な方法はにありますネスト化されたFlatBuffersを使用します(バイトベクトルで子オブジェクトをスティックします)。

C++でリフレクションを使用するディープコピー機能がありますが、速度が遅く、バイナリスキーマファイルが必要で、まだJavaに移植されていません。新しい "ミニリフレクション"テーブルはディープコピーに適していますが、これまでのところC++のみです。

関連する問題