Version 1.2.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
Hopper::UnnotifyandSink::Unnotify.Notify(cv&)does not own the
condition variable. After wiring, the Hopper outlives the consumer; the
consumer mustUnnotifybefore that CV is destroyed so a later producer
Eofdoes not signal a freed object.SignalConsumeris a no-op when
the pointer is null.Sink::To(key),Sink::operator>>andSink::operator<<. Same wiring
asBind/Bind(key)(writer, reader, co-writer).Bindstays as a
[[deprecated]]wrapper for one or two releases.Hopper::operator<</Hopper::operator>>anditem >> hopper. Same
asPush/Pop. Those methods stay.Pipeline::Processscopes a non-null logger withScope("Buffer/Pipeline")
before handing it to stages.%cidentifies this module without using the
thread-local component stack. Nestedlog->Scope("Decode")inside a stage
becomesBuffer/Pipeline/Decode(orMultimedia/Buffer/Pipeline/Decode
if the caller already scoped a parent). Pass the application or parent-module
logger; do not pre-scopeBuffer/Pipeline.
Changed
- Optional Logger pin is 1.2.0
(Scopeand hierarchical components).
Tests
test_hopper_unnotify_before_cv_dies,test_hopper_notify_after_unnotify,
test_hopper_stream_members,test_hopper_stream_item_into.test_sink_unnotify_before_cv_dies,test_sink_stream_operators.
Existing Sink tests useTo/>>/<<instead ofBind.