std::ostreams に結合するオブジェクトのシリアル化ライブラリを作成しています。基礎となる streambuf に応じて、一部の ostream はシーク操作をサポートし、一部はサポートしません。さらに、一部のストリームは固定サイズのシンクに書き込み、一部は拡大します (fstream、stringstream など)。
私の場合、私は組み込みシステムに取り組んでおり、自分のリソースを非常に保護したいと考えています。ストリームに依存しない方法で、書き込みが許可されているバイト数に任意の最大制限を課したいと思います。
以前にカスタム streambufs を作成したことがあります (1 つは zlib をラップし、もう 1 つは sqlite blob api をラップします)。この限定的な目的のためだけに、別のカスタム ラッピング streambuf を作成できると思います。他に提案はありますか?別の streambuf を作成する必要がある場合、基になるストリームに書き込まれた実際のバイト数のカウントを保持する簡単な方法はありますか?
制限:
ブースト (組み込みプラットフォーム) を使用できません。
標準の ostream (fstream、stringstream、cout など) で機能する必要があります。