Queue
Queue implementation in C
Functions
Queue.c File Reference

Circular queue implementation. More...

#include "Queue.h"
Include dependency graph for Queue.c:

Functions

void queue_init (queue_t *queue, queue_array_t *queueArray, uint16_t queueSize, uint8_t dataSize)
 
uint8_t queue_enqueue (queue_t *queue, const void *value)
 
uint8_t queue_dequeue (queue_t *queue, void *value)
 
void queue_print (queue_t *queue, void(*printFn)(const void *data), void *data)
 
uint16_t queue_count (queue_t *queue)
 

Detailed Description

Circular queue implementation.

To use the queue implementation, include this header file as follows:

#include "Queue.h"

Overview

The behaviour of a Queue is similar to a First In First Out (FIFO) memory.

Usage

The Queue implementation provides APIs to enqueue (push) and dequeue (pop) values from the queue.

The following code example initializes the queue, writes to the queue, and then gets elements from the queue.

uint8_t error, i;
uint16_t ret;
const uint16_t data[3] = {0, 1, 2};
queue_array_t queue_array[QUEUESIZE] = {0};
queue_t queue;
queue_init(&queue, queue_array, QUEUESIZE, sizeof(uint16_t));
for (i = 0; i < 3; i++)
{
error = queue_enqueue(&queue, (void *) &data[i]);
}
for (i = 0; i < 3; i++)
{
error = queue_dequeue(&queue, (void *) &ret));
printf("Value %d: %d", i, ret);
}