Sobre o projeto
StormByte-Buffer é uma biblioteca C++26 que fornece primitivas de buffer e streaming para a suíte C++ StormByte. Ela depende do StormByte-String 1.0.0 ou mais recente (que inclui StormByte Base 2.0.0 e StormByte-System 2.0.0) e, opcionalmente, do StormByte-Logger 2.0.0 para pipes de pipeline. Os cabeçalhos públicos ficam em StormByte/buffer/. Outros módulos da suíte, como Base, Config, Crypto, Database, Logger, Multimedia, Network, String e System, são repositórios separados e não são implementados aqui.
O módulo abrange vários blocos de construção. FIFO é um buffer de bytes que cresce sob demanda e não é thread-safe; Read e Peek mantêm os dados enquanto Extract os consome. SharedFIFO é um FIFO thread-safe cujos Read e Extract bloqueiam até que dados cheguem ou Close/SetError seja chamado. Ring é um ring many-to-many concorrente. Producer e Consumer são handles somente escrita e somente leitura sobre um Ring compartilhado. Hopper é uma fila tipada SPSC com capacidade limitada opcional, e Sink mapeia chaves inteiras para buckets Hopper. Pipeline transforma buffers de stream através de folhas Pipe definidas pelo usuário, com modos de execução Sync, Async e Parallel. Bridge realiza transferência manual de bytes entre pontas ReadOnly/WriteOnly ou folhas IO, e Pumper possui um Bridge e executa um worker até o fim do arquivo ou cancelamento. IO fornece as bases BufferedReader e BufferedWriter, além das folhas de arquivo BufferedFileReader e BufferedFileWriter com Parameters aninhados como ReadAhead e MaxMemory.
A telemetria é exposta como handles compartilhados ReadTelemetry e WriteTelemetry em offices de IO e Bridges. MeanRate mede as operações de usuário solicitadas, incluindo acertos de cache, e não é um benchmark de disco. Os métodos de ciclo de vida incluem Close, SetError, EoF, IsReadable e IsWritable. No Windows, uma folha IO mantém o handle de origem até ser destruída, então um caminho permanece bloqueado até que o Bridge ou Pumper o libere.
A instalação requer um compilador C++26 e CMake 3.28 ou mais recente. Um clone recursivo seguido de configure e build com cmake produz a biblioteca; BUILD_SHARED_LIBS controla a saída compartilhada versus estática. O projeto é duplamente licenciado sob LGPL v3 ou posterior, ou uma licença comercial do detentor dos direitos autorais. A documentação inclui este README e uma referência de classes Doxygen, e as contribuições seguem Conventional Commits com Doxygen nos cabeçalhos públicos.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.