libcute 0.1
Loading...
Searching...
No Matches
Classes | Enumerations | Functions
ring_buffer.h File Reference
#include "macro.h"
#include "memory/allocator.h"
#include "nostd.h"
#include "object/destructor.h"
#include "object/optional.h"
#include "object/result.h"
#include "utility.h"
#include <stdbool.h>
#include <stddef.h>
Include dependency graph for ring_buffer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  cu_RingBuffer
 Ring buffer storing elements in FIFO order. More...
 

Enumerations

enum  cu_RingBuffer_Error {
  CU_RINGBUFFER_ERROR_NONE = 0 , CU_RINGBUFFER_ERROR_OOM , CU_RINGBUFFER_ERROR_INVALID_LAYOUT , CU_RINGBUFFER_ERROR_INVALID ,
  CU_RINGBUFFER_ERROR_FULL , CU_RINGBUFFER_ERROR_EMPTY
}
 

Functions

cu_RingBuffer_Result cu_RingBuffer_create (cu_Allocator allocator, cu_Layout layout, size_t capacity, cu_Destructor_Optional destructor)
 
void cu_RingBuffer_destroy (cu_RingBuffer *rb)
 
cu_RingBuffer_Error_Optional cu_RingBuffer_push (cu_RingBuffer *rb, void *elem)
 
cu_RingBuffer_Error_Optional cu_RingBuffer_pop (cu_RingBuffer *rb, void *out_elem)
 
void cu_RingBuffer_clear (cu_RingBuffer *rb)
 

Detailed Description

Circular buffer container.

Enumeration Type Documentation

◆ cu_RingBuffer_Error

Error codes returned by ring buffer operations.

Function Documentation

◆ cu_RingBuffer_clear()

void cu_RingBuffer_clear ( cu_RingBuffer rb)

Clear all elements from the ring buffer.

Here is the call graph for this function:
Here is the caller graph for this function: