这个项目能做什么

StormByte-Buffer 是一个 C++26 库,为 StormByte C++ 套件提供缓冲和流式原语。它依赖 StormByte-String 1.0.0 或更新版本(该版本内置 StormByte Base 2.0.0 和 StormByte-System 2.0.0),并可选依赖 StormByte-Logger 2.0.0 以支持 pipeline pipes。公共头文件位于 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 基类,以及 BufferedFileReader 和 BufferedFileWriter 文件叶子,并带有嵌套的 Parameters,例如 ReadAhead 和 MaxMemory。 遥测以共享的 ReadTelemetry 和 WriteTelemetry 句柄形式暴露在 IO offices 和 Bridges 上。MeanRate 衡量请求的用户操作,包括缓存命中,并不是磁盘基准测试。生命周期方法包括 Close、SetError、EoF、IsReadable 和 IsWritable。在 Windows 上,IO 叶子会保留原始句柄直到被销毁,因此路径会保持锁定,直到 Bridge 或 Pumper 释放它。 安装需要 C++26 编译器和 CMake 3.28 或更新版本。递归克隆后执行 cmake 配置和构建即可生成该库;BUILD_SHARED_LIBS 控制共享库与静态库输出。该项目采用双重许可,可选择 LGPL v3 或更新版本,或由版权持有人提供的商业许可。文档包括此 README 和 Doxygen 类参考,贡献遵循 Conventional Commits,并在公共头文件上使用 Doxygen。