2012-04-05 15 views
0

IOヘッドを特定のCodedOutputStreamまたはZeroCopyOutputStreamの先頭に移動したいので、ファイル内にいくつのprotobufメッセージがあるかでヘッダーデータ構造を更新できます。次のメッセージが消費するバイト数。Googleプロトコルバッファー、提供されているストリームオブジェクトのIOヘッドを後方に再配置

Backup functionはこれを意図したものではありません。私は、各ファイルに複数のイベントデータセットが含まれているイベントデータのファイル形式を作成しています。私はこの(固定サイズ)のグローバルエンティティとデータセットごとの2種類のヘッダエンティティが必要です。私はデータセットイベントを書き込んだ後にこれらを更新します。だから、どのようにストリームオブジェクトの内部状態を壊さずに書込みヘッダーを移動するのですか?

編集

私は、ストリームクラスのこの作品は、または私は未定義の土地になってしまいますし、ストリームラッパーをフラッシュし、ちょうどヘッドを取り付け直しするC関数を使用している場合、私は疑問に思いますか?

答えて

1

最も明白な方法は、それぞれの代わりに2つのファイルがあると思います。ストリーミングされたデータを含むメインファイルと、ヘッダー情報を含むインデックスファイル。

+0

おそらく、私はこのアプローチを正当な理由で書いていないかもしれません。私が想定しているファイルシステムを活用することができます。 –

+0

はい、それは非常に正気な提案です、ありがとうございます。私はboost :: iostreamを使って、私はprotescufからファイル記述子を得ることができます。私は可変長ヘッダを使うことができます。 –

関連する問題