Skip to content

Version 1.2.0

Choose a tag to compare

@StormBytePP StormBytePP released this 17 Sep 17:44
· 112 commits to master since this release

[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::Unnotify and Sink::Unnotify. Notify(cv&) does not own the
    condition variable. After wiring, the Hopper outlives the consumer; the
    consumer must Unnotify before that CV is destroyed so a later producer
    Eof does not signal a freed object. SignalConsumer is a no-op when
    the pointer is null.
  • Sink::To(key), Sink::operator>> and Sink::operator<<. Same wiring
    as Bind / Bind(key) (writer, reader, co-writer). Bind stays as a
    [[deprecated]] wrapper for one or two releases.
  • Hopper::operator<< / Hopper::operator>> and item >> hopper. Same
    as Push / Pop. Those methods stay.
  • Pipeline::Process scopes a non-null logger with Scope("Buffer/Pipeline")
    before handing it to stages. %c identifies this module without using the
    thread-local component stack. Nested log->Scope("Decode") inside a stage
    becomes Buffer/Pipeline/Decode (or Multimedia/Buffer/Pipeline/Decode
    if the caller already scoped a parent). Pass the application or parent-module
    logger; do not pre-scope Buffer/Pipeline.

Changed

  • Optional Logger pin is 1.2.0
    (Scope and 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 use To / >> / << instead of Bind.