41 lines
679 B
C
41 lines
679 B
C
|
/* vim: set sw=4 ts=4 si et: */
|
||
|
|
||
|
#ifndef _FIFO_H
|
||
|
#define _FIFO_H
|
||
|
|
||
|
#include "config.h"
|
||
|
|
||
|
typedef struct {
|
||
|
nodeindex_t * _data;
|
||
|
|
||
|
nodeindex_t _fill;
|
||
|
nodeindex_t _size;
|
||
|
nodeindex_t _head;
|
||
|
nodeindex_t _tail;
|
||
|
} Fifo_t;
|
||
|
|
||
|
|
||
|
Fifo_t * fifo_create(nodeindex_t size);
|
||
|
|
||
|
void fifo_push(Fifo_t * fifo, nodeindex_t node);
|
||
|
|
||
|
Fifo_t * fifo_copy(Fifo_t * fifo);
|
||
|
|
||
|
void fifo_reverse(Fifo_t * fifo);
|
||
|
|
||
|
bool fifo_is_empty(Fifo_t * fifo);
|
||
|
|
||
|
nodeindex_t fifo_front(Fifo_t * fifo);
|
||
|
|
||
|
nodeindex_t fifo_pop(Fifo_t * fifo);
|
||
|
|
||
|
nodeindex_t fifo_get_size(Fifo_t * fifo);
|
||
|
|
||
|
void fifo_display(Fifo_t * fifo);
|
||
|
|
||
|
void fifo_destroy(Fifo_t * fifo);
|
||
|
|
||
|
nodeindex_t fifo_get_random(Fifo_t * fifo);
|
||
|
|
||
|
#endif // _FIFO_H
|