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: