Piojo Ring/Circular buffer implementation.
piojo_ring_t* piojo_ring_alloc |
( |
size_t |
ecount | ) |
|
Allocates a new ring. Uses default allocator and entry size of int.
- Parameters
-
[in] | ecount | Number of entries to reserve space for. |
- Returns
- New ring.
piojo_ring_t* piojo_ring_alloc_cb |
( |
size_t |
esize, |
|
|
size_t |
ecount, |
|
|
piojo_alloc_if |
allocator |
|
) |
| |
Allocates a new ring.
- Parameters
-
[in] | esize | Entry size in bytes. |
[in] | ecount | Number of entries to reserve space for. |
[in] | allocator | Allocator to be used. |
- Returns
- New ring.
piojo_ring_t* piojo_ring_alloc_s |
( |
size_t |
esize, |
|
|
size_t |
ecount |
|
) |
| |
Allocates a new ring. Uses default allocator.
- Parameters
-
[in] | esize | Entry size in bytes. |
[in] | ecount | Number of entries to reserve space for. |
- Returns
- New ring.
void piojo_ring_clear |
( |
piojo_ring_t * |
ring | ) |
|
Deletes all entries in ring.
- Parameters
-
[out] | ring | Ring being cleared. |
piojo_ring_t* piojo_ring_copy |
( |
const piojo_ring_t * |
ring | ) |
|
Copies ring and all its entries.
- Parameters
-
[in] | ring | Ring being copied. |
- Returns
- New ring.
void piojo_ring_free |
( |
const piojo_ring_t * |
ring | ) |
|
Frees ring and all its entries.
- Parameters
-
[in] | ring | Ring being freed. |
bool piojo_ring_full_p |
( |
const piojo_ring_t * |
ring | ) |
|
Returns whether ring is full.
- Parameters
-
- Returns
- TRUE if ring is full, FALSE otherwise.
void* piojo_ring_peek |
( |
const piojo_ring_t * |
ring | ) |
|
Reads the next entry.
- Parameters
-
- Returns
- Entry value.
void piojo_ring_pop |
( |
piojo_ring_t * |
ring | ) |
|
Deletes the next entry.
- Parameters
-
void piojo_ring_push |
( |
const void * |
data, |
|
|
piojo_ring_t * |
ring |
|
) |
| |
Inserts a new entry after the last entry.
- Warning
- You should check ring is not full.
- Parameters
-
[in] | data | Entry value. |
[out] | ring | Ring being modified. |
size_t piojo_ring_size |
( |
const piojo_ring_t * |
ring | ) |
|
Returns number of entries.
- Parameters
-
- Returns
- Number of entries in ring.
const size_t piojo_ring_sizeof |