Version 1.3.0
[Summary]
StormByte Buffer is the byte-buffer module of the StormByte C++ suite.
It depends on StormByte Base and optionally StormByte Logger. This repository is not Base, Config, Crypto, Database, Logger, Multimedia, Network or System.
Public headers under StormByte/buffer/ cover FIFO, SharedFIFO, Ring, Producer/Consumer, Hopper, Sink, Bridge and Pipeline.
If you landed here from a release link and have not read the tree:
- What this module is, how to build it, and short examples: README.md
- License: GNU Lesser General Public License version 3 or later, LICENSE
Added
Sink::Keys,Sink::Buckets,Sink::Contains,Sink::Empty(key),Sink::EoF(key)andSink::Ready(key). Query only. Missing key:Emptyis true,EoF/Ready/Containsare false,Bucketsis the wired count.Sink::Pop(int key). Reads that hopper only. Waits until the key is wired or the Sink is closed. Empty hopper returns defaultT(same asHopper::Pop). Does not interpret the key.Hopper::Writers,Hopper::ReadyandHopper::Front.Frontcopies the next item and does not dequeue; requiresstd::copy_constructible<T>(shared_ptr). Not a deep copy of the payload.Writersis the live writer count (starts at 1).
Tests
test_hopper_front_peek,test_hopper_writers_and_ready.test_sink_pop_key,test_sink_query_unwired,test_sink_query_wired.- Hopper and Sink test files ordered by section name, then by test name.