17#ifndef __ROGUE_INTERFACES_STREAM_FIFO_H__
18#define __ROGUE_INTERFACES_STREAM_FIFO_H__
54 std::shared_ptr<rogue::Logging> log_;
62 std::size_t dropFrameCnt_;
93 static std::shared_ptr<rogue::interfaces::stream::Fifo>
create(uint32_t maxDepth, uint32_t trimSize,
bool noCopy);
110 Fifo(uint32_t maxDepth, uint32_t trimSize,
bool noCopy);
129 void acceptFrame(std::shared_ptr<rogue::interfaces::stream::Frame> frame);
133typedef std::shared_ptr<rogue::interfaces::stream::Fifo>
FifoPtr;
Thread-safe bounded queue with optional busy threshold.
void acceptFrame(std::shared_ptr< rogue::interfaces::stream::Frame > frame)
Receives a frame from upstream and enqueues or drops it.
static void setup_python()
Registers this type with Python bindings.
std::size_t size()
Returns current FIFO queue depth.
std::size_t dropCnt() const
Returns the total dropped-frame counter.
void clearCnt()
Clears FIFO counters (including dropped-frame count).
~Fifo()
Destroys the FIFO and stops internal worker thread.
static std::shared_ptr< rogue::interfaces::stream::Master > create()
Creates a stream master.
Stream slave endpoint and default frame pool.
std::shared_ptr< rogue::interfaces::stream::Fifo > FifoPtr
Shared pointer alias for Fifo.