![]() |
SysIo
1.9.0
Embedded Library and tools
|
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... | |
xDListElmt * | pxDListElmtNext (const xDListElmt *element) |
Pointeur sur l'élément suivant dans la liste. More... | |
xDListElmt * | pxDListElmtPrev (const xDListElmt *element) |
Pointeur sur l'élément précédent dans la liste. More... | |
xDListElmt * | pxDListFindFirst (xDList *list, const void *key) |
Chercher le premier élément correspondant à une clé More... | |
xDListElmt * | pxDListHead (const xDList *list) |
Retourne l'élément en tête de liste. More... | |
xDListElmt * | pxDListTail (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 int(* iDListElmtMatch) (const void *key1, const void *key2) |
bool bDListElmtIsHead | ( | const xDListElmt * | element | ) |
#include <dlist.h>
Indique si l'élément est en tête de liste.
element | pointeur sur l'élément concerné |
bool bDListElmtIsTail | ( | const xDListElmt * | element | ) |
#include <dlist.h>
Indique si l'élément est en queue de liste.
element | pointeur sur l'élément concerné |
int iDListAppend | ( | xDList * | list, |
const void * | data | ||
) |
#include <dlist.h>
Insertion en fin de liste.
list | pointeur sur la liste |
data | à affecter au nouvel élément |
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.
list | pointeur sur la liste |
int iDListInit | ( | xDList * | list, |
vDListElmtDestroy | fdestroy | ||
) |
#include <dlist.h>
Initialise une liste doublement chaînée.
list | pointeur sur la liste |
fdestroy | fonction 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.
list | pointeur sur la liste |
fkey | fonction de clé |
fmatch | fonction de comparaison |
int iDListInsertAfter | ( | xDList * | list, |
xDListElmt * | element, | ||
const void * | data | ||
) |
#include <dlist.h>
Insertion avant l'élément.
list | pointeur sur la liste |
element | précédent le nouveau |
data | à affecter au nouvel élément |
int iDListInsertBefore | ( | xDList * | list, |
xDListElmt * | element, | ||
const void * | data | ||
) |
#include <dlist.h>
Insertion après l'élément.
list | pointeur sur la liste |
element | suivant le nouveau |
data | à affecter au nouvel élément |
int iDListPrepend | ( | xDList * | list, |
const void * | data | ||
) |
#include <dlist.h>
Insertion en début de liste.
list | pointeur sur la liste |
data | à affecter au nouvel élément |
int iDListRemove | ( | xDList * | list, |
xDListElmt * | element, | ||
void ** | data | ||
) |
#include <dlist.h>
Retire un élément.
list | pointeur sur la liste |
element | à retier |
data | pointeur sur la donnée de l'élément retiré (mémoire non libérée) |
int iDListSize | ( | const xDList * | list | ) |
#include <dlist.h>
Nombre d'élément.
list | pointeur sur la liste |
void* pvDListElmtData | ( | const xDListElmt * | element | ) |
#include <dlist.h>
Pointeur sur la donnée de l'élément.
element | pointeur sur l'élément concerné |
xDListElmt* pxDListElmtNext | ( | const xDListElmt * | element | ) |
#include <dlist.h>
Pointeur sur l'élément suivant dans la liste.
element | pointeur sur l'élément concerné |
xDListElmt* pxDListElmtPrev | ( | const xDListElmt * | element | ) |
#include <dlist.h>
Pointeur sur l'élément précédent dans la liste.
element | pointeur sur l'élément concerné |
xDListElmt* pxDListFindFirst | ( | xDList * | list, |
const void * | key | ||
) |
#include <dlist.h>
Chercher le premier élément correspondant à une clé
list | pointeur sur la liste |
key | clé de l'élément à trouver |
xDListElmt* pxDListHead | ( | const xDList * | list | ) |
#include <dlist.h>
Retourne l'élément en tête de liste.
list | pointeur sur la liste |
xDListElmt* pxDListTail | ( | const xDList * | list | ) |
#include <dlist.h>
Retourne l'élément en queue de liste.
list | pointeur sur la liste |