Eina_Clist is a compact (inline) list implementation. More...
Data Structures | |
| struct | _Eina_Clist |
| The structure type for a compact list type. More... | |
Macros | |
| #define | EINA_CLIST_FOR_EACH(cursor, list) |
| Iterates through the list. | |
| #define | EINA_CLIST_FOR_EACH_SAFE(cursor, cursor2, list) |
| Iterates through the list, with safety against removal. | |
| #define | EINA_CLIST_FOR_EACH_ENTRY(elem, list, type, field) |
| Iterates through the list using a list entry. | |
| #define | EINA_CLIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field) |
| Iterates through the list using a list entry, with safety against removal. | |
| #define | EINA_CLIST_FOR_EACH_REV(cursor, list) |
| Iterates through the list in the reverse order. | |
| #define | EINA_CLIST_FOR_EACH_SAFE_REV(cursor, cursor2, list) |
| Iterates through the list in the reverse order, with safety against removal. | |
| #define | EINA_CLIST_FOR_EACH_ENTRY_REV(elem, list, type, field) |
| Iterates through the list in the reverse order using a list entry. | |
| #define | EINA_CLIST_FOR_EACH_ENTRY_SAFE_REV(cursor, cursor2, list, type, field) |
| Iterates through the list in the reverse order using a list entry, with safety against removal. | |
| #define | EINA_CLIST_INIT(list) |
| Macros for statically initialized lists. | |
| #define | EINA_CLIST_ENTRY(elem, type, field) |
| Gets a pointer to the object containing the list element. | |
Typedefs | |
| typedef struct _Eina_Clist | Eina_Clist |
| Type for _Eina_Clist structure containing the list head and the list entry. | |
Functions | |
| static void | eina_clist_add_after (Eina_Clist *elem, Eina_Clist *to_add) |
| Adds an element after the specified one. | |
| static void | eina_clist_add_before (Eina_Clist *elem, Eina_Clist *to_add) |
| Adds an element before the specified one. | |
| static void | eina_clist_add_head (Eina_Clist *list, Eina_Clist *elem) |
| Adds an element to the head of the list. | |
| static void | eina_clist_add_tail (Eina_Clist *list, Eina_Clist *elem) |
| Adds an element at the tail of the list. | |
| static void | eina_clist_element_init (Eina_Clist *elem) |
| Inits an (unlinked) element. | |
| static int | eina_clist_element_is_linked (Eina_Clist *elem) |
| Checks whether an element is in a list. | |
| static void | eina_clist_remove (Eina_Clist *elem) |
| Removes an element from its list. | |
| static Eina_Clist * | eina_clist_next (const Eina_Clist *list, const Eina_Clist *elem) |
| Gets the next element. | |
| static Eina_Clist * | eina_clist_prev (const Eina_Clist *list, const Eina_Clist *elem) |
| Gets the previous element. | |
| static Eina_Clist * | eina_clist_head (const Eina_Clist *list) |
| Gets the first element. | |
| static Eina_Clist * | eina_clist_tail (const Eina_Clist *list) |
| Gets the last element. | |
| static int | eina_clist_empty (const Eina_Clist *list) |
| Checks whether a list is empty. | |
| static void | eina_clist_init (Eina_Clist *list) |
| Initializes a list. | |
| static unsigned int | eina_clist_count (const Eina_Clist *list) |
| Counts the elements of a list. | |
| static void | eina_clist_move_tail (Eina_Clist *dst, Eina_Clist *src) |
Moves all elements from src to the tail of dst. | |
| static void | eina_clist_move_head (Eina_Clist *dst, Eina_Clist *src) |
Moves all elements from src to the head of dst. | |
Eina_Clist is a compact (inline) list implementation.
Elements of this list are members of the structs stored in the list.
Advantages over Eina_List and Eina_Inlist :
Disadvantages:
NULL at the end of the list, the last item points to the head.Define a list as follows:
or
Manipulate it like this:
And to iterate over it:
| #define EINA_CLIST_FOR_EACH | ( | cursor, | |
| list ) |
Iterates through the list.
| [out] | cursor | The pointer to be used during the interaction |
| [in] | list | The list to be interacted with |
| #define EINA_CLIST_FOR_EACH_SAFE | ( | cursor, | |
| cursor2, | |||
| list ) |
Iterates through the list, with safety against removal.
| [out] | cursor | The pointer to be used during the interaction |
| [out] | cursor2 | The auxiliary pointer to be used during the interaction |
| [in] | list | The list to be interacted with |
| #define EINA_CLIST_FOR_EACH_ENTRY | ( | elem, | |
| list, | |||
| type, | |||
| field ) |
Iterates through the list using a list entry.
| [out] | elem | The element to be used |
| [in] | list | The list to be iterated |
| [in] | type | The type of the list |
| [in] | field | The field of the element |
| #define EINA_CLIST_FOR_EACH_ENTRY_SAFE | ( | cursor, | |
| cursor2, | |||
| list, | |||
| type, | |||
| field ) |
Iterates through the list using a list entry, with safety against removal.
| [out] | cursor | The pointer to be used during the interaction |
| [out] | cursor2 | The auxiliary pointer to be used during the interaction |
| [in] | list | The list to be interacted with |
| [in] | type | The type of the list |
| [in] | field | The field of the element |
| #define EINA_CLIST_FOR_EACH_REV | ( | cursor, | |
| list ) |
Iterates through the list in the reverse order.
| [out] | cursor | The pointer to be used during the interaction |
| [in] | list | The list to be interacted with |
| #define EINA_CLIST_FOR_EACH_SAFE_REV | ( | cursor, | |
| cursor2, | |||
| list ) |
Iterates through the list in the reverse order, with safety against removal.
| [out] | cursor | The pointer to be used during the interaction |
| [out] | cursor2 | The auxiliary pointer to be used during the interaction |
| [in] | list | The list to be interacted with |
| #define EINA_CLIST_FOR_EACH_ENTRY_REV | ( | elem, | |
| list, | |||
| type, | |||
| field ) |
Iterates through the list in the reverse order using a list entry.
| [out] | elem | The element to be used |
| [in] | list | The list to be iterated |
| [in] | type | The type of the list |
| [in] | field | The field of the element |
| #define EINA_CLIST_FOR_EACH_ENTRY_SAFE_REV | ( | cursor, | |
| cursor2, | |||
| list, | |||
| type, | |||
| field ) |
Iterates through the list in the reverse order using a list entry, with safety against removal.
| [out] | cursor | The pointer to be used during the interaction |
| [out] | cursor2 | The auxiliary pointer to be used during the interaction |
| [in] | list | The list to be interacted with |
| [in] | type | The type of the list |
| [in] | field | The field of the element |
| #define EINA_CLIST_INIT | ( | list | ) |
Macros for statically initialized lists.
| [in,out] | list | The list to be used |
| #define EINA_CLIST_ENTRY | ( | elem, | |
| type, | |||
| field ) |
Gets a pointer to the object containing the list element.
| [out] | elem | The element to be used |
| [in] | type | The type of the element |
| [in] | field | The field of the element |
| typedef struct _Eina_Clist Eina_Clist |
Type for _Eina_Clist structure containing the list head and the list entry.
|
inlinestatic |
Adds an element after the specified one.
| [in,out] | elem | An element in the list |
| [in] | to_add | The element to add to the list |
References eina_clist_add_after().
Referenced by eina_clist_add_after().
|
inlinestatic |
Adds an element before the specified one.
| [in,out] | elem | An element in the list |
| [in] | to_add | The element to add to the list |
References eina_clist_add_before().
Referenced by eina_clist_add_before().
|
inlinestatic |
Adds an element to the head of the list.
| [in,out] | list | The list |
| [in] | elem | An element |
References eina_clist_add_head().
Referenced by eina_clist_add_head().
|
inlinestatic |
Adds an element at the tail of the list.
| [in,out] | list | The list |
| [in] | elem | An element |
References eina_clist_add_tail().
Referenced by eina_clist_add_tail().
|
inlinestatic |
Inits an (unlinked) element.
This function is called on elements that have not been added to the list so that eina_clist_element_init() works correctly.
| [in,out] | elem | An element |
References eina_clist_element_init().
Referenced by eina_clist_element_init().
|
inlinestatic |
Checks whether an element is in a list.
| [in] | elem | An element |
elem, or it has been added to a list or removed from a list.References eina_clist_element_is_linked().
Referenced by eina_clist_element_is_linked().
|
inlinestatic |
Removes an element from its list.
| [in,out] | elem | An element |
References eina_clist_remove().
Referenced by eina_clist_remove().
|
inlinestatic |
Gets the next element.
| [in] | list | The list |
| [in] | elem | An element |
elem in list, otherwise NULL if elem is last in list elem is in list.References eina_clist_next().
Referenced by eina_clist_next().
|
inlinestatic |
Gets the previous element.
| [in] | list | The list |
| [in] | elem | An element |
elem, otherwise NULL if elem is first in list References eina_clist_prev().
Referenced by eina_clist_prev().
|
inlinestatic |
Gets the first element.
| [in] | list | The list |
list, otherwise NULL if list is emptyReferences eina_clist_head().
Referenced by eina_clist_head().
|
inlinestatic |
Gets the last element.
| [in] | list | The list |
list, otherwise NULL if list is emptyReferences eina_clist_tail().
Referenced by eina_clist_tail().
|
inlinestatic |
Checks whether a list is empty.
| [in] | list | The list |
list is empty, otherwise zero if it is notReferences eina_clist_empty().
Referenced by eina_clist_empty().
|
inlinestatic |
Initializes a list.
| [in,out] | list | The list |
References eina_clist_init().
Referenced by eina_clist_init().
|
inlinestatic |
Counts the elements of a list.
| [in] | list | The list |
References eina_clist_count().
Referenced by eina_clist_count().
|
inlinestatic |
Moves all elements from src to the tail of dst.
| [in,out] | dst | The list to be appended to |
| [in] | src | The list to append |
src is initialized, but is empty after this operation.References eina_clist_move_tail().
Referenced by eina_clist_move_tail().
|
inlinestatic |
Moves all elements from src to the head of dst.
| [in,out] | dst | The list to be prepended to |
| [in] | src | The list to prepend |
src is initialized, but is empty after this operation.References eina_clist_move_head().
Referenced by eina_clist_move_head().