Implementation inline di una coda (FIFO) di valori di tipo queue_elem_t. More...
#include <malloc.h>
Go to the source code of this file.
Data Structures | |
struct | queue_t |
Rappresentazione interna di una coda. More... | |
struct | queue_iterator_t |
Defines | |
#define | OK 0 |
Indica la corretta terminazione di una funzione. | |
#define | E_NO_MEMORY -1 |
Indica un errore dovuto a mancanza di memoria. | |
Typedefs | |
typedef long | queue_elem_t |
Il tipo dei valori accodabili nella coda. | |
Functions | |
static int | queue_init (queue_t *queue, int max_num_elems) |
Inizializza una coda specificando il max. | |
static void | queue_cleanup (queue_t *queue) |
Distrugge una coda e le risorse associate. | |
static void | queue_insert (queue_t *queue, queue_elem_t elem) |
Inserisce un elemento nella coda. | |
static queue_elem_t | queue_extract (queue_t *queue) |
Estrae un elemento dalla coda. | |
static int | queue_get_num_elements (queue_t *queue) |
Restituisce il numero di elementi attualmente accodati. | |
static int | queue_get_max_num_elements (queue_t *queue) |
Restituisce il massimo numero di elementi accodabili. | |
static int | queue_is_empty (queue_t *queue) |
Controlla se la coda e' vuota. | |
static int | queue_is_full (queue_t *queue) |
Controlla se la coda e' piena. | |
static queue_iterator_t | queue_begin (queue_t *self) |
Get an iterator positioned on the first (earliest inserted) element of the queue. | |
static int | queue_it_has_next (queue_iterator_t *self) |
Check if we may call queue_it_next() once again. | |
static queue_elem_t | queue_it_next (queue_iterator_t *self) |
Retrieve (without removing) next element from the queue. |
Implementation inline di una coda (FIFO) di valori di tipo queue_elem_t.
All queue operations are declared as static inline, and their implementation is in the header file itself, so to allow the compiler to optimize as much as possible. It is possible to enable or disable various checks on the consistency of each opearation with respect to the internal status of the queue object. This is useful for debugging purposes.
Definition in file queue.h.
#define E_NO_MEMORY -1 |
Indica un errore dovuto a mancanza di memoria.
Definition at line 25 of file queue.h.
Referenced by queue_init().
#define OK 0 |
Indica la corretta terminazione di una funzione.
Definition at line 23 of file queue.h.
Referenced by queue_init().
typedef long queue_elem_t |
static queue_iterator_t queue_begin | ( | queue_t * | self | ) | [static] |
Get an iterator positioned on the first (earliest inserted) element of the queue.
Definition at line 135 of file queue.h.
References queue_t::del_pos, and queue_iterator_t::queue.
static void queue_cleanup | ( | queue_t * | queue | ) | [inline, static] |
Distrugge una coda e le risorse associate.
Definition at line 57 of file queue.h.
References queue_t::data.
static queue_elem_t queue_extract | ( | queue_t * | queue | ) | [static] |
Estrae un elemento dalla coda.
Non chiamare questa funzione se la coda non e' stata inizializzata o e' vuota.
Definition at line 79 of file queue.h.
References queue_t::data, queue_t::del_pos, queue_t::max_num_elements, and queue_t::num_elements.
static int queue_get_max_num_elements | ( | queue_t * | queue | ) | [inline, static] |
Restituisce il massimo numero di elementi accodabili.
Non chiamare questa funzione se la coda non e' stata inizializzata.
Definition at line 103 of file queue.h.
References queue_t::max_num_elements.
static int queue_get_num_elements | ( | queue_t * | queue | ) | [static] |
Restituisce il numero di elementi attualmente accodati.
Non chiamare questa funzione se la coda non e' stata inizializzata.
Definition at line 93 of file queue.h.
References queue_t::num_elements.
static int queue_init | ( | queue_t * | queue, | |
int | max_num_elems | |||
) | [static] |
Inizializza una coda specificando il max.
numero di elementi.
queue | Puntatore all'oggetto queue_t | |
max_num_elems | Max. numero di elementi accodabili |
Definition at line 46 of file queue.h.
References queue_t::data, queue_t::del_pos, E_NO_MEMORY, queue_t::ins_pos, queue_t::max_num_elements, queue_t::num_elements, and OK.
static void queue_insert | ( | queue_t * | queue, | |
queue_elem_t | elem | |||
) | [static] |
Inserisce un elemento nella coda.
Non chiamare questa funzione se la coda non e' stata inizializzata o e' piena.
Definition at line 66 of file queue.h.
References queue_t::data, queue_t::ins_pos, queue_t::max_num_elements, and queue_t::num_elements.
static int queue_is_empty | ( | queue_t * | queue | ) | [inline, static] |
Controlla se la coda e' vuota.
Non chiamare questa funzione se la coda non e' stata inizializzata.
Definition at line 113 of file queue.h.
References queue_t::num_elements.
static int queue_is_full | ( | queue_t * | queue | ) | [inline, static] |
Controlla se la coda e' piena.
Non chiamare questa funzione se la coda non e' stata inizializzata.
Definition at line 123 of file queue.h.
References queue_t::max_num_elements, and queue_t::num_elements.
static int queue_it_has_next | ( | queue_iterator_t * | self | ) | [static] |
Check if we may call queue_it_next() once again.
static queue_elem_t queue_it_next | ( | queue_iterator_t * | self | ) | [static] |