queue.h File Reference

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.

Detailed Description

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 Documentation

#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 Documentation

typedef long queue_elem_t

Il tipo dei valori accodabili nella coda.

Definition at line 20 of file queue.h.


Function Documentation

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.

Returns:
L'elemento estratto.

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.

Returns:
Il max. numero di elementi accodabili.

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.

Returns:
Il numero di elementi attualmente in coda.

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.

Parameters:
queue Puntatore all'oggetto queue_t
max_num_elems Max. numero di elementi accodabili
Returns:
OK oppure E_NO_MEMORY

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.

Returns:
1 se la coda e' vuota, 0 altrimenti.

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.

Returns:
1 se la coda e' piena, 0 altrimenti.

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.

Definition at line 144 of file queue.h.

static queue_elem_t queue_it_next ( queue_iterator_t self  )  [static]

Retrieve (without removing) next element from the queue.

Definition at line 149 of file queue.h.

Generated on Mon Aug 2 22:39:17 2010 for qosres by  doxygen 1.6.3