21 #ifndef _AVRIO_DLIST_H_ 22 #define _AVRIO_DLIST_H_ 24 #include <avrio/defs.h> 55 typedef const void * (*pvDListElmtKey) (
const xDListElmt * element);
87 #define pxDListElmtDataPtr(element, t) ((t *)pvDListElmtData(element)) xDListElmt * pxDListTail(const xDList *list)
Retourne l'élément en queue de liste.
Liste doublement chaînée.
int iDListPrepend(xDList *list, const void *data)
Insertion en début de liste.
struct xDList xDList
Liste doublement chaînée.
xDListElmt * pxDListHead(const xDList *list)
Retourne l'élément en tête de liste.
Elément d'une liste doublement chaînée.
int iDListInitSearch(xDList *list, pvDListElmtKey fkey, iDListElmtMatch fmatch)
Initialise les fonctions de recherche.
int iDListRemove(xDList *list, xDListElmt *element, void **data)
Retire un élément.
xDListElmt * pxDListElmtNext(const xDListElmt *element)
Pointeur sur l'élément suivant dans la liste.
int iDListSize(const xDList *list)
Nombre d'élément.
bool bDListElmtIsHead(const xDListElmt *element)
Indique si l'élément est en tête de liste.
int iDListInsertAfter(xDList *list, xDListElmt *element, const void *data)
Insertion avant l'élément.
int iDListInit(xDList *list, vDListElmtDestroy fdestroy)
Initialise une liste doublement chaînée.
const void *(* pvDListElmtKey)(const xDListElmt *element)
Retourne la clé d'un élément.
int iDListInsertBefore(xDList *list, xDListElmt *element, const void *data)
Insertion après l'élément.
xDListElmt * pxDListElmtPrev(const xDListElmt *element)
Pointeur sur l'élément précédent dans la liste.
int iDListDestroy(xDList *list)
Destruction d'une liste doublement chaînée.
void(* vDListElmtDestroy)(void *data)
Fonction qui libère la mémoire allouée à une donnée de la liste.
xDListElmt * pxDListFindFirst(xDList *list, const void *key)
Chercher le premier élément correspondant à une clé
int iDListAppend(xDList *list, const void *data)
Insertion en fin de liste.
int(* iDListElmtMatch)(const void *key1, const void *key2)
Fonction de comparaison de 2 clés.
void * pvDListElmtData(const xDListElmt *element)
Pointeur sur la donnée de l'élément.
bool bDListElmtIsTail(const xDListElmt *element)
Indique si l'élément est en queue de liste.