このプロジェクトについて

StormByte-Bufferは、StormByte C++スイート向けのバッファリングおよびストリーミングプリミティブを提供するC++26ライブラリです。StormByte-String 1.0.0以降(StormByte Base 2.0.0とStormByte-System 2.0.0を同梱)に依存し、パイプラインパイプ用にオプションでStormByte-Logger 2.0.0にも依存します。公開ヘッダーはStormByte/buffer/以下にあります。Base、Config、Crypto、Database、Logger、Multimedia、Network、String、Systemなどスイートの他のモジュールは別リポジトリであり、ここでは実装されていません。 このモジュールはいくつかの構成要素をカバーしています。FIFOはオンデマンドで拡張するバイトバッファで、スレッドセーフではありません。ReadとPeekはデータを保持し、Extractはデータを消費します。SharedFIFOはスレッドセーフなFIFOで、ReadとExtractはデータが到着するかClose/SetErrorが呼ばれるまでブロックします。Ringは並行多対多リングです。ProducerとConsumerは共有Ringに対する書き込み専用および読み取り専用ハンドルです。Hopperはオプションの有界容量を持つSPSC型付きキューで、Sinkは整数キーをHopperバケットにマッピングします。Pipelineはユーザー定義のPipeリーフを通じてストリームバッファを変換し、Sync、Async、Parallelの実行モードがあります。BridgeはReadOnly/WriteOnlyチップまたはIOリーフ間で手動のバイト転送を行い、PumperはBridgeを所有し、ファイル終端またはキャンセルまでワーカーを実行します。IOはBufferedReaderとBufferedWriterの基底クラス、およびReadAheadやMaxMemoryなどのネストされたParametersを持つBufferedFileReaderとBufferedFileWriterのファイルリーフを提供します。 テレメトリはIOオフィスとBridge上の共有ReadTelemetryおよびWriteTelemetryハンドルとして公開されています。MeanRateはキャッシュヒットを含む要求されたユーザー操作を測定し、ディスクベンチマークではありません。ライフサイクルメソッドにはClose、SetError、EoF、IsReadable、IsWritableが含まれます。Windowsでは、IOリーフは破棄されるまで元のハンドルを保持するため、BridgeまたはPumperが解放するまでパスはロックされたままになります。 インストールにはC++26コンパイラとCMake 3.28以降が必要です。再帰的クローンに続いてcmake configureとbuildを実行するとライブラリが生成されます。BUILD_SHARED_LIBSは共有出力と静的出力を制御します。このプロジェクトはLGPL v3以降、または著作権者からの商用ライセンスによるデュアルライセンスです。ドキュメントにはこのREADMEとDoxygenクラスリファレンスが含まれ、コントリビューションは公開ヘッダーにDoxygenを付けたConventional Commitsに従います。