#include <juce_SingleThreadedAbstractFifo.h>
Public Member Functions | |
SingleThreadedAbstractFifo ()=default | |
SingleThreadedAbstractFifo (int sizeIn) | |
int | getRemainingSpace () const |
int | getNumReadable () const |
int | getSize () const |
std::array< Range< int >, 2 > | write (int num) |
std::array< Range< int >, 2 > | read (int num) |
Encapsulates the logic for a single-threaded FIFO.
This might be useful for building buffers which can be written and read in blocks of different sizes. For example, in an audio effect we might wish to run some processing on fixed-size blocks of audio input, but the host may provide input blocks of varying sizes. In this situation, we might want to store the previous input in a buffer, and extract a fixed-size block whenever there are enough samples available. The SingleThreadedAbstractFifo implements logic suitable for this use-case.
This class is quite similar to AbstractFifo, in that it only keeps track of the current read/write locations. The user is responsible for providing the actual buffer that will be read/written.
The intended usage of this class is as follows:
Unlike AbstractFifo, the SingleThreadedAbstractFifo is intended for use from a single thread. It is not safe to call any non-const member function of SingleThreadedAbstractFifo concurrently with any other member function.
Definition at line 63 of file juce_SingleThreadedAbstractFifo.h.
|
default |
Creates a SingleThreadedAbstractFifo with no size.
|
inlineexplicit |
Creates a SingleThreadedAbstractFifo that can manage a buffer of the specified size.
Definition at line 70 of file juce_SingleThreadedAbstractFifo.h.
|
inline |
Returns the number of pending elements present in the buffer.
Definition at line 83 of file juce_SingleThreadedAbstractFifo.h.
|
inline |
Returns the number of unused elements present in the buffer.
Definition at line 80 of file juce_SingleThreadedAbstractFifo.h.
Referenced by write().
|
inline |
Returns the size of the managed buffer.
Definition at line 86 of file juce_SingleThreadedAbstractFifo.h.
|
inline |
Returns two blocks in the buffer from which new items may be read.
Note that if the buffer doesn't have the requested number of items available, the sum of the lengths of the returned ranges may be less than num!
Definition at line 109 of file juce_SingleThreadedAbstractFifo.h.
|
inline |
Returns two blocks in the buffer where new items may be written.
Note that if the buffer is running low on free space, the sum of the lengths of the returned ranges may be less than num!
Definition at line 93 of file juce_SingleThreadedAbstractFifo.h.