Lock-free event channel: the writer publishes the occurrences from one audio block and the view reads the latest completed block.
More...
#include <value_source.hpp>
|
| | ~EventSource () |
| void | publish (const ValueEvent *events, int count) |
| | Publish a block's occurrences from the writer thread.
|
| EventFrame | read () |
| | Read the latest completed block from the reader thread.
|
| void | note_publish () noexcept |
| | Writer (audio/host) thread, from publish().
|
| std::uint32_t | publish_seq () const noexcept |
| | Reader (UI) thread. Changes iff the writer published since the last read.
|
Lock-free event channel: the writer publishes the occurrences from one audio block and the view reads the latest completed block.
Like the other visualization channels this is latest-wins, not a lossless queue. A UI that misses an intermediate block observes the newest one.
◆ ~EventSource()
| pulp::dataplane::EventSource::~EventSource |
( |
| ) |
|
◆ note_publish()
| void pulp::dataplane::PublishCounter::note_publish |
( |
| ) |
|
|
inlinenoexceptinherited |
Writer (audio/host) thread, from publish().
Relaxed: the counter orders no other memory, it only has to be monotonic and eventually visible.
◆ publish()
| void pulp::dataplane::EventSource::publish |
( |
const ValueEvent * | events, |
|
|
int | count ) |
Publish a block's occurrences from the writer thread.
Alloc-free and non-blocking. Oversized lists are truncated to their leading events.
◆ publish_seq()
| std::uint32_t pulp::dataplane::PublishCounter::publish_seq |
( |
| ) |
const |
|
inlinenoexceptinherited |
Reader (UI) thread. Changes iff the writer published since the last read.
◆ read()
Read the latest completed block from the reader thread.
◆ ValueChannelSet
| friend class ValueChannelSet |
|
friend |
The documentation for this class was generated from the following file:
- /home/runner/work/pulp/pulp/core/dataplane/include/pulp/dataplane/value_source.hpp