|
gwenhywfar 5.14.1
|
#include <gwenhywfar/gwenhywfarapi.h>#include <gwenhywfar/inherit.h>#include <gwenhywfar/refptr.h>#include <string.h>#include <stdio.h>Go to the source code of this file.
Typedefs | |
| typedef struct GWEN_LIST | GWEN_CONSTLIST |
| Doubly-linked list with const objects. | |
| typedef const void *(* | GWEN_CONSTLIST_FOREACH_CB) (const void *element, void *user_data) |
| typedef struct GWEN_LIST_ITERATOR | GWEN_CONSTLIST_ITERATOR |
| typedef struct GWEN_LIST | GWEN_LIST |
| Doubly-linked list. | |
| typedef void *(* | GWEN_LIST_FOREACH_CB) (void *element, void *user_data) |
| typedef struct GWEN_LIST_ITERATOR | GWEN_LIST_ITERATOR |
| typedef struct GWEN_LIST GWEN_CONSTLIST |
| typedef const void *(* GWEN_CONSTLIST_FOREACH_CB) (const void *element, void *user_data) |
| typedef struct GWEN_LIST_ITERATOR GWEN_CONSTLIST_ITERATOR |
| typedef void *(* GWEN_LIST_FOREACH_CB) (void *element, void *user_data) |
| typedef struct GWEN_LIST_ITERATOR GWEN_LIST_ITERATOR |
| GWENHYWFAR_API void GWEN_ConstList_Clear | ( | GWEN_CONSTLIST * | l | ) |
Removes all list elements from the list. The elements are not freed.
References GWENHYWFAR_API.
| GWENHYWFAR_API const void * GWEN_ConstList_Contains | ( | const GWEN_CONSTLIST * | l, |
| const void * | element ) |
Searches whether the list contains the given element. If it does, the pointer to the element is returned. Otherwise, NULL is returned.
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_ConstList_Erase | ( | GWEN_CONSTLIST * | l, |
| GWEN_CONSTLIST_ITERATOR * | it ) |
Removes the element currently pointed to by the given iterator from the list. (The element is not freed.) The given iterator is move toward the next element in any case (if there is no next element then the iterator will point to 0).
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_CONSTLIST_ITERATOR * GWEN_ConstList_FindIter | ( | const GWEN_CONSTLIST * | l, |
| const void * | element ) |
Finds the LIST_ITERATOR position of the given element. The returned LIST_ITERATOR will be owned by the caller and must be freed when no longer in use. If the list does not contain the element, NULL will be returned.
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_CONSTLIST_ITERATOR * GWEN_ConstList_First | ( | const GWEN_CONSTLIST * | l | ) |
Return an iterator pointing to the first element in the list
References GWENHYWFAR_API.
| GWENHYWFAR_API const void * GWEN_ConstList_ForEach | ( | GWEN_CONSTLIST * | list, |
| GWEN_CONSTLIST_FOREACH_CB | func, | ||
| void * | user_data ) |
Traverses the list, calling the callback function 'func' on each list element. Traversal will stop when 'func' returns a non-NULL value, and the routine will return with that value. Otherwise the routine will return NULL.
| list | The list to traverse. |
| func | The function to be called with each list element. |
| user_data | A pointer passed on to the function 'func'. |
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_ConstList_free | ( | GWEN_CONSTLIST * | l | ) |
Destructor. Frees all of the memory used by this list. The list elements are not freed
References GWENHYWFAR_API.
| GWENHYWFAR_API const void * GWEN_ConstList_GetBack | ( | const GWEN_CONSTLIST * | l | ) |
Returns the last element of the list. (The element is not removed from the list.)
References GWENHYWFAR_API.
| GWENHYWFAR_API const void * GWEN_ConstList_GetFront | ( | const GWEN_CONSTLIST * | l | ) |
Returns the first element of the list. (The element is not removed from the list.)
References GWENHYWFAR_API.
| GWENHYWFAR_API unsigned int GWEN_ConstList_GetSize | ( | const GWEN_CONSTLIST * | l | ) |
Returns the size of this list, i.e. the number of elements in this list.
This number is counted in the list metadata, so this is a cheap operation.
References GWENHYWFAR_API.
| GWENHYWFAR_API int GWEN_ConstList_IsEmpty | ( | const GWEN_LIST * | l | ) |
Returns nonzero (TRUE) if this list is empty, and zero (FALSE) if this list is not empty.
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_CONSTLIST_ITERATOR * GWEN_ConstList_Last | ( | const GWEN_CONSTLIST * | l | ) |
Returns an iterator pointing to the last element in the list.
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_CONSTLIST * GWEN_ConstList_new | ( | void | ) |
Constructor. Returns a new empty list.
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_ConstList_PopBack | ( | GWEN_CONSTLIST * | l | ) |
Removes the list's last element from the list. (The element is not freed.)
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_ConstList_PopFront | ( | GWEN_CONSTLIST * | l | ) |
Removes the list's first element from the list. (The element is not freed.)
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_ConstList_PushBack | ( | GWEN_CONSTLIST * | l, |
| const void * | p ) |
Appends an element to a list, making it the new last element.
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_ConstList_PushFront | ( | GWEN_CONSTLIST * | l, |
| const void * | p ) |
Inserts an element at the start of the list, making it the new first element.
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_ConstList_Remove | ( | GWEN_CONSTLIST * | l, |
| const void * | element ) |
Searches for the first occurrence of the "element" pointer and erases that element from the list. (The element itself is not freed.) I.e. this function calls GWEN_List_Erase on the first occurrence found of "element".
References GWENHYWFAR_API.
| GWENHYWFAR_API const void * GWEN_ConstListIterator_Data | ( | GWEN_CONSTLIST_ITERATOR * | li | ) |
Returns the pointer to the element stored at the list position the iterator currently points to.
| GWENHYWFAR_API void GWEN_ConstListIterator_free | ( | GWEN_CONSTLIST_ITERATOR * | li | ) |
Frees a list iterator.
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_CONSTLIST_ITERATOR * GWEN_ConstListIterator_new | ( | const GWEN_CONSTLIST * | l | ) |
Creates a list iterator for the given list.
References GWENHYWFAR_API.
| GWENHYWFAR_API const void * GWEN_ConstListIterator_Next | ( | GWEN_CONSTLIST_ITERATOR * | li | ) |
Moves the list iterator to the successor of the currenty selected element and returns that successor element.
References GWENHYWFAR_API.
| GWENHYWFAR_API const void * GWEN_ConstListIterator_Previous | ( | GWEN_CONSTLIST_ITERATOR * | li | ) |
Moves the list iterator to the predecessor of the currenty selected element and returns that predecessor element.
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_List_Clear | ( | GWEN_LIST * | l | ) |
Removes all list elements from the list. The elements are not freed.
References GWENHYWFAR_API.
| GWENHYWFAR_API const void * GWEN_List_Contains | ( | GWEN_LIST * | l, |
| const void * | element ) |
Searches whether the list contains the given element. If it does, the pointer to the element is returned. Otherwise, NULL is returned.
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_List_Dump | ( | const GWEN_LIST * | l, |
| FILE * | f, | ||
| unsigned int | indent ) |
Dumps the contents of the list to an open file (e.g. stderr).
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_LIST * GWEN_List_dup | ( | const GWEN_LIST * | l | ) |
Duplicates a list by returning a reference and using reference-counting.
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_List_Erase | ( | GWEN_LIST * | l, |
| GWEN_LIST_ITERATOR * | it ) |
Removes the element currently pointed to by the given iterator from the list. (The element is not freed.) The given iterator is move toward the next element in any case (if there is no next element then the iterator will point to 0).
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_LIST_ITERATOR * GWEN_List_FindIter | ( | GWEN_LIST * | l, |
| const void * | element ) |
Finds the LIST_ITERATOR position of the given element. The returned LIST_ITERATOR will be owned by the caller and must be freed when no longer in use. If the list does not contain the element, NULL will be returned.
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_LIST_ITERATOR * GWEN_List_First | ( | const GWEN_LIST * | l | ) |
Return an iterator pointing to the first element in the list
References GWENHYWFAR_API.
| GWENHYWFAR_API void * GWEN_List_ForEach | ( | GWEN_LIST * | list, |
| GWEN_LIST_FOREACH_CB | func, | ||
| void * | user_data ) |
Traverses the list, calling the callback function 'func' on each list element. Traversal will stop when 'func' returns a non-NULL value, and the routine will return with that value. Otherwise the routine will return NULL.
| list | The list to traverse. |
| func | The function to be called with each list element. |
| user_data | A pointer passed on to the function 'func'. |
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_List_free | ( | GWEN_LIST * | l | ) |
Destructor. Frees all of the memory used by this list. The list elements are not freed.
References GWENHYWFAR_API.
| GWENHYWFAR_API void * GWEN_List_GetBack | ( | const GWEN_LIST * | l | ) |
Returns the last element of the list. (The element is not removed from the list.)
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_REFPTR * GWEN_List_GetBackRefPtr | ( | const GWEN_LIST * | l | ) |
Returns the last element of the list. (The element is not removed from the list.)
References GWENHYWFAR_API.
| GWENHYWFAR_API void * GWEN_List_GetFront | ( | const GWEN_LIST * | l | ) |
Returns the first element of the list. (The element is not removed from the list.)
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_REFPTR * GWEN_List_GetFrontRefPtr | ( | const GWEN_LIST * | l | ) |
Returns the first element of the list. (The element is not removed from the list.)
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_REFPTR_INFO * GWEN_List_GetRefPtrInfo | ( | const GWEN_LIST * | l | ) |
References GWENHYWFAR_API.
| GWENHYWFAR_API unsigned int GWEN_List_GetSize | ( | const GWEN_LIST * | l | ) |
Returns the size of this list, i.e. the number of elements in this list.
This number is counted in the list metadata, so this is a cheap operation.
References GWENHYWFAR_API.
| GWENHYWFAR_API int GWEN_List_IsEmpty | ( | const GWEN_LIST * | l | ) |
Returns nonzero (TRUE) if this list is empty, and zero (FALSE) if this list is not empty.
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_LIST_ITERATOR * GWEN_List_Last | ( | const GWEN_LIST * | l | ) |
Returns an iterator pointing to the last element in the list.
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_LIST * GWEN_List_new | ( | void | ) |
allow inheriting of lists Constructor. Returns a new empty list.
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_List_PopBack | ( | GWEN_LIST * | l | ) |
Removes the list's last element from the list. (The element is not freed.)
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_List_PopFront | ( | GWEN_LIST * | l | ) |
Removes the list's first element from the list. (The element is not freed.)
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_List_PushBack | ( | GWEN_LIST * | l, |
| void * | p ) |
Appends an element to a list, making it the new last element.
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_List_PushBackRefPtr | ( | GWEN_LIST * | l, |
| GWEN_REFPTR * | rp ) |
Appends an element to a list, making it the new last element.
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_List_PushFront | ( | GWEN_LIST * | l, |
| void * | p ) |
Inserts an element at the start of the list, making it the new first element.
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_List_PushFrontRefPtr | ( | GWEN_LIST * | l, |
| GWEN_REFPTR * | rp ) |
Inserts an element at the start of the list, making it the new first element.
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_List_Remove | ( | GWEN_LIST * | l, |
| const void * | element ) |
Searches for the first occurrence of the "element" pointer and erases that element from the list. (The element itself is not freed.) I.e. this function calls GWEN_List_Erase on the first occurrence found of "element".
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_List_SetRefPtrInfo | ( | GWEN_LIST * | l, |
| GWEN_REFPTR_INFO * | rpi ) |
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_List_Unshare | ( | GWEN_LIST * | l | ) |
References GWENHYWFAR_API.
| GWENHYWFAR_API void * GWEN_ListIterator_Data | ( | GWEN_LIST_ITERATOR * | li | ) |
Returns the pointer to the element stored at the list position the iterator currently points to.
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_REFPTR * GWEN_ListIterator_DataRefPtr | ( | GWEN_LIST_ITERATOR * | li | ) |
Returns the pointer to the element stored at the list position the iterator currently points to.
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_ListIterator_free | ( | GWEN_LIST_ITERATOR * | li | ) |
Frees a list iterator.
References GWENHYWFAR_API.
| GWENHYWFAR_API unsigned int GWEN_ListIterator_GetLinkCount | ( | const GWEN_LIST_ITERATOR * | li | ) |
References GWENHYWFAR_API.
| GWENHYWFAR_API void GWEN_ListIterator_IncLinkCount | ( | GWEN_LIST_ITERATOR * | li | ) |
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_LIST_ITERATOR * GWEN_ListIterator_new | ( | const GWEN_LIST * | l | ) |
Creates a list iterator for the given list.
References GWENHYWFAR_API.
| GWENHYWFAR_API void * GWEN_ListIterator_Next | ( | GWEN_LIST_ITERATOR * | li | ) |
Moves the list iterator to the successor of the currenty selected element and returns that successor element.
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_REFPTR * GWEN_ListIterator_NextRefPtr | ( | GWEN_LIST_ITERATOR * | li | ) |
Moves the list iterator to the successor of the currenty selected element and returns that successor element.
References GWENHYWFAR_API.
| GWENHYWFAR_API void * GWEN_ListIterator_Previous | ( | GWEN_LIST_ITERATOR * | li | ) |
Moves the list iterator to the predecessor of the currenty selected element and returns that predecessor element.
References GWENHYWFAR_API.
| GWENHYWFAR_API GWEN_REFPTR * GWEN_ListIterator_PreviousRefPtr | ( | GWEN_LIST_ITERATOR * | li | ) |
Moves the list iterator to the predecessor of the currenty selected element and returns that predecessor element.
References GWENHYWFAR_API.