The class BBuffer implements a bounded buffer, that is a circular buffer with a fixed capacity.
More...
#include <object/bbuffer.h>
|
| BBuffer () |
| Constructor that initialized an empty buffer.
|
|
bool | produce (T val) |
| Add an element to the buffer.
|
|
bool | consume (T &val) |
| Remove an element from the buffer.
|
|
|
T | data [CAP] |
|
volatile unsigned | in |
|
volatile unsigned | out |
|
template<typename T, unsigned CAP>
class BBuffer< T, CAP >
The class BBuffer implements a bounded buffer, that is a circular buffer with a fixed capacity.
- Template Parameters
-
T | the type of data to be stored |
CAP | the buffers capacity (must be greater than 1) |
◆ BBuffer() [1/2]
template<typename T , unsigned CAP>
◆ BBuffer() [2/2]
template<typename T , unsigned CAP>
Constructor that initialized an empty buffer.
◆ operator=()
template<typename T , unsigned CAP>
◆ produce()
template<typename T , unsigned CAP>
bool BBuffer< T, CAP >::produce |
( |
T |
val | ) |
|
|
inline |
Add an element to the buffer.
- Parameters
-
val | The element to be added. |
- Returns
false
if the buffer is full and no element can be added; true
otherwise.
◆ consume()
template<typename T , unsigned CAP>
bool BBuffer< T, CAP >::consume |
( |
T & |
val | ) |
|
|
inline |
Remove an element from the buffer.
- Parameters
-
val | Output parameter that receives the next element. If there is (currently) no next element, val will not be modified. |
- Returns
false
if the buffer was empty; true
if the buffer was not empty and an element was written to val.
◆ data
template<typename T , unsigned CAP>
◆ in
template<typename T , unsigned CAP>
volatile unsigned BBuffer< T, CAP >::in |
|
private |
◆ out
template<typename T , unsigned CAP>
volatile unsigned BBuffer< T, CAP >::out |
|
private |
The documentation for this class was generated from the following file: