私はprotobufの実装を学んでいます。ただ、一点だけ理解できない点があります。フレームワークは、サブメッセージ (オブジェクト) を可変長のバッファにシリアル化する方法を教えてください。それを別の場所にシリアル化し、後でバッファにコピーしますか?
質問する
448 次
1 に答える
1
私が考えることができる少なくとも 4 つの方法があります。答えが正しい限り、「どれ」が実装の詳細です。
- 別のバッファにシリアライズしてからコピーする
- ヘッダーにかかる長さについて仮定し、それをスキップしてシリアル化し、戻ってヘッダーを修正します (移動を伴う場合がありますが、常にではありません)。
- ビルダーを使用する場合、データを追加するときに個別にシリアル化し、後で構成することができます。この場合、長さを把握するのは簡単です
- または、実際にシリアル化せずに値の長さを計算するコードを含めることができます
これらの方法のうち、少なくとも 3 つの方法で、異なる時期に実装しました。
于 2012-10-13T10:12:36.123 に答える