SysIo  1.9.0
Embedded Library and tools
Liste doublement chaînée

Detailed Description

Ce module fournit les fonctions permettant de gérer des listes doublement chaînées.

Classes

struct  xDList
 Liste doublement chaînée. More...
 
struct  xDListElmt
 Elément d'une liste doublement chaînée. More...
 

Functions

bool bDListElmtIsHead (const xDListElmt *element)
 Indique si l'élément est en tête de liste. More...
 
bool bDListElmtIsTail (const xDListElmt *element)
 Indique si l'élément est en queue de liste. More...
 
int iDListAppend (xDList *list, const void *data)
 Insertion en fin de liste. More...
 
int iDListDestroy (xDList *list)
 Destruction d'une liste doublement chaînée. More...
 
int iDListInit (xDList *list, vDListElmtDestroy fdestroy)
 Initialise une liste doublement chaînée. More...
 
int iDListInitSearch (xDList *list, pvDListElmtKey fkey, iDListElmtMatch fmatch)
 Initialise les fonctions de recherche. More...
 
int iDListInsertAfter (xDList *list, xDListElmt *element, const void *data)
 Insertion avant l'élément. More...
 
int iDListInsertBefore (xDList *list, xDListElmt *element, const void *data)
 Insertion après l'élément. More...
 
int iDListPrepend (xDList *list, const void *data)
 Insertion en début de liste. More...
 
int iDListRemove (xDList *list, xDListElmt *element, void **data)
 Retire un élément. More...
 
int iDListSize (const xDList *list)
 Nombre d'élément. More...
 
void * pvDListElmtData (const xDListElmt *element)
 Pointeur sur la donnée de l'élément. More...
 
xDListElmtpxDListElmtNext (const xDListElmt *element)
 Pointeur sur l'élément suivant dans la liste. More...
 
xDListElmtpxDListElmtPrev (const xDListElmt *element)
 Pointeur sur l'élément précédent dans la liste. More...
 
xDListElmtpxDListFindFirst (xDList *list, const void *key)
 Chercher le premier élément correspondant à une clé More...
 
xDListElmtpxDListHead (const xDList *list)
 Retourne l'élément en tête de liste. More...
 
xDListElmtpxDListTail (const xDList *list)
 Retourne l'élément en queue de liste. More...
 

Macros

#define pxDListElmtDataPtr(element, t)   ((t *)pvDListElmtData(element))
 Retourne le pointeur sur la donnée convertit en pointeur sur type t.
 

Typedefs

typedef int(* iDListElmtMatch) (const void *key1, const void *key2)
 Fonction de comparaison de 2 clés. More...
 
typedef const void *(* pvDListElmtKey) (const xDListElmt *element)
 Retourne la clé d'un élément.
 
typedef void(* vDListElmtDestroy) (void *data)
 Fonction qui libère la mémoire allouée à une donnée de la liste.
 
typedef struct xDList xDList
 Liste doublement chaînée.
 
typedef struct xDListElmt xDListElmt
 Elément d'une liste doublement chaînée.
 

Typedef Documentation

typedef int(* iDListElmtMatch) (const void *key1, const void *key2)

#include <dlist.h>

Fonction de comparaison de 2 clés.

Returns
0 si key1 == key2, positif si key1 > key2, négatif si key1 < key2,

Definition at line 38 of file dlist.h.

Function Documentation

bool bDListElmtIsHead ( const xDListElmt element)

#include <dlist.h>

Indique si l'élément est en tête de liste.

Parameters
elementpointeur sur l'élément concerné
Returns
la valeur
bool bDListElmtIsTail ( const xDListElmt element)

#include <dlist.h>

Indique si l'élément est en queue de liste.

Parameters
elementpointeur sur l'élément concerné
Returns
la valeur
int iDListAppend ( xDList list,
const void *  data 
)

#include <dlist.h>

Insertion en fin de liste.

Parameters
listpointeur sur la liste
dataà affecter au nouvel élément
Returns
0, -1 si erreur
int iDListDestroy ( xDList list)

#include <dlist.h>

Destruction d'une liste doublement chaînée.

La mémoire allouée aux données de chaque élément est libérée si une fonction destroy() a été fournie à l'initialisation.

Parameters
listpointeur sur la liste
int iDListInit ( xDList list,
vDListElmtDestroy  fdestroy 
)

#include <dlist.h>

Initialise une liste doublement chaînée.

Parameters
listpointeur sur la liste
fdestroyfonction chargée de libébrer la mémoire allouée aux données, NULL si les données sont statiques
int iDListInitSearch ( xDList list,
pvDListElmtKey  fkey,
iDListElmtMatch  fmatch 
)

#include <dlist.h>

Initialise les fonctions de recherche.

Parameters
listpointeur sur la liste
fkeyfonction de clé
fmatchfonction de comparaison
int iDListInsertAfter ( xDList list,
xDListElmt element,
const void *  data 
)

#include <dlist.h>

Insertion avant l'élément.

Parameters
listpointeur sur la liste
elementprécédent le nouveau
dataà affecter au nouvel élément
Returns
0, -1 si erreur
int iDListInsertBefore ( xDList list,
xDListElmt element,
const void *  data 
)

#include <dlist.h>

Insertion après l'élément.

Parameters
listpointeur sur la liste
elementsuivant le nouveau
dataà affecter au nouvel élément
Returns
0, -1 si erreur
int iDListPrepend ( xDList list,
const void *  data 
)

#include <dlist.h>

Insertion en début de liste.

Parameters
listpointeur sur la liste
dataà affecter au nouvel élément
Returns
0, -1 si erreur
int iDListRemove ( xDList list,
xDListElmt element,
void **  data 
)

#include <dlist.h>

Retire un élément.

Parameters
listpointeur sur la liste
elementà retier
datapointeur sur la donnée de l'élément retiré (mémoire non libérée)
Returns
0, -1 si erreur
int iDListSize ( const xDList list)

#include <dlist.h>

Nombre d'élément.

Parameters
listpointeur sur la liste
Returns
la valeur
void* pvDListElmtData ( const xDListElmt element)

#include <dlist.h>

Pointeur sur la donnée de l'élément.

Parameters
elementpointeur sur l'élément concerné
Returns
la valeur
xDListElmt* pxDListElmtNext ( const xDListElmt element)

#include <dlist.h>

Pointeur sur l'élément suivant dans la liste.

Parameters
elementpointeur sur l'élément concerné
Returns
la valeur
xDListElmt* pxDListElmtPrev ( const xDListElmt element)

#include <dlist.h>

Pointeur sur l'élément précédent dans la liste.

Parameters
elementpointeur sur l'élément concerné
Returns
la valeur
xDListElmt* pxDListFindFirst ( xDList list,
const void *  key 
)

#include <dlist.h>

Chercher le premier élément correspondant à une clé

Parameters
listpointeur sur la liste
keyclé de l'élément à trouver
Returns
premier élément trouvé, NULL si pas trouvé
xDListElmt* pxDListHead ( const xDList list)

#include <dlist.h>

Retourne l'élément en tête de liste.

Parameters
listpointeur sur la liste
Returns
la valeur
xDListElmt* pxDListTail ( const xDList list)

#include <dlist.h>

Retourne l'élément en queue de liste.

Parameters
listpointeur sur la liste
Returns
la valeur