![]() |
AvrIO
1.4.5
Bibliothèque C modulaire pour ATMEL AVR
|
Ce module fournit les fonctions permettant de gérer des listes doublement chaînées.
![]() |
Structures de données | |
struct | xDList |
Liste doublement chaînée. Plus de détails... | |
struct | xDListElmt |
Elément d'une liste doublement chaînée. Plus de détails... | |
Fonctions | |
bool | bDListElmtIsHead (const xDListElmt *element) |
Indique si l'élément est en tête de liste. Plus de détails... | |
bool | bDListElmtIsTail (const xDListElmt *element) |
Indique si l'élément est en queue de liste. Plus de détails... | |
int | iDListAppend (xDList *list, const void *data) |
Insertion en fin de liste. Plus de détails... | |
int | iDListDestroy (xDList *list) |
Destruction d'une liste doublement chaînée. Plus de détails... | |
int | iDListInit (xDList *list, vDListElmtDestroy fdestroy) |
Initialise une liste doublement chaînée. Plus de détails... | |
int | iDListInitSearch (xDList *list, pvDListElmtKey fkey, iDListElmtMatch fmatch) |
Initialise les fonctions de recherche. Plus de détails... | |
int | iDListInsertAfter (xDList *list, xDListElmt *element, const void *data) |
Insertion avant l'élément. Plus de détails... | |
int | iDListInsertBefore (xDList *list, xDListElmt *element, const void *data) |
Insertion après l'élément. Plus de détails... | |
int | iDListPrepend (xDList *list, const void *data) |
Insertion en début de liste. Plus de détails... | |
int | iDListRemove (xDList *list, xDListElmt *element, void **data) |
Retire un élément. Plus de détails... | |
int | iDListSize (const xDList *list) |
Nombre d'élément. Plus de détails... | |
void * | pvDListElmtData (const xDListElmt *element) |
Pointeur sur la donnée de l'élément. Plus de détails... | |
xDListElmt * | pxDListElmtNext (const xDListElmt *element) |
Pointeur sur l'élément suivant dans la liste. Plus de détails... | |
xDListElmt * | pxDListElmtPrev (const xDListElmt *element) |
Pointeur sur l'élément précédent dans la liste. Plus de détails... | |
xDListElmt * | pxDListFindFirst (xDList *list, const void *key) |
Chercher le premier élément correspondant à une clé Plus de détails... | |
xDListElmt * | pxDListHead (const xDList *list) |
Retourne l'élément en tête de liste. Plus de détails... | |
xDListElmt * | pxDListTail (const xDList *list) |
Retourne l'élément en queue de liste. Plus de détails... | |
Macros | |
#define | pxDListElmtDataPtr(element, t) ((t *)pvDListElmtData(element)) |
Retourne le pointeur sur la donnée convertit en pointeur sur type t. | |
Définitions de type | |
typedef int(* | iDListElmtMatch) (const void *key1, const void *key2) |
Fonction de comparaison de 2 clés. Plus de détails... | |
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 int(* iDListElmtMatch) (const void *key1, const void *key2) |
bool bDListElmtIsHead | ( | const xDListElmt * | element | ) |
Indique si l'élément est en tête de liste.
element | pointeur sur l'élément concerné |
bool bDListElmtIsTail | ( | const xDListElmt * | element | ) |
Indique si l'élément est en queue de liste.
element | pointeur sur l'élément concerné |
int iDListAppend | ( | xDList * | list, |
const void * | data | ||
) |
Insertion en fin de liste.
list | pointeur sur la liste |
data | à affecter au nouvel élément |
int iDListDestroy | ( | xDList * | list | ) |
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 | ||
) |
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 | ||
) |
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 | ||
) |
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 | ||
) |
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 | ||
) |
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 | ||
) |
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 | ) |
Nombre d'élément.
list | pointeur sur la liste |
void* pvDListElmtData | ( | const xDListElmt * | element | ) |
Pointeur sur la donnée de l'élément.
element | pointeur sur l'élément concerné |
xDListElmt* pxDListElmtNext | ( | const xDListElmt * | element | ) |
Pointeur sur l'élément suivant dans la liste.
element | pointeur sur l'élément concerné |
xDListElmt* pxDListElmtPrev | ( | const xDListElmt * | element | ) |
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 | ||
) |
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 | ) |
Retourne l'élément en tête de liste.
list | pointeur sur la liste |
xDListElmt* pxDListTail | ( | const xDList * | list | ) |
Retourne l'élément en queue de liste.
list | pointeur sur la liste |