Simple ring buffer for queues.
More...
Simple ring buffer for queues.
◆ ring_buffer_count()
Get the number of elements currently in the ring buffer.
- Parameters
-
| [in] | p_buffer | Pointer to the ring buffer control struct. |
- Returns
- Number of elements.
◆ ring_buffer_init()
| void ring_buffer_init |
( |
ring_buffer_t * |
p_buffer, |
|
|
void * |
ptr_array, |
|
|
size_t |
length |
|
) |
| |
Initialize a ring buffer.
- Parameters
-
| [in] | p_buffer | Pointer to ring buffer control struct. |
| [in] | ptr_array | Array of pointers used as the backing store for the ring buffer. |
| length | Number of elements available in ptr_array. |
◆ ring_buffer_is_empty()
Gets whether or not the ring buffer is empty.
- Parameters
-
| [in] | p_buffer | Pointer to the ring buffer control struct. |
- Returns
- true on empty, false otherwise.
◆ ring_buffer_peek()
Gets a pointer to the next element in the buffer without removing it.
- Parameters
-
| [in] | p_buffer | Pointer to the ring buffer control struct. |
- Returns
- The pointer to the next element, or NULL if the buffer is empty.
◆ ring_buffer_pop()
| bool ring_buffer_pop |
( |
ring_buffer_t * |
p_buffer, |
|
|
void ** |
p_element |
|
) |
| |
Removes an element from the ring buffer.
- Parameters
-
| [in] | p_buffer | Pointer to the ring buffer control struct. |
| [out] | p_element | Pointer to copy the element's value to. |
- Returns
- true on success, false if the buffer is empty.
◆ ring_buffer_push()
| bool ring_buffer_push |
( |
ring_buffer_t * |
p_buffer, |
|
|
void * |
p_element |
|
) |
| |
Pushes a value onto the ring buffer.
- Parameters
-
| [in] | p_buffer | Pointer to the ring buffer control struct. |
| [in] | p_element | Pointer to the element to push. |
- Returns
- true on success, false if no room is available.