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