29 #ifndef GWENHYWFAR_LIST_H
30 #define GWENHYWFAR_LIST_H
58 typedef void *(*GWEN_LIST_FOREACH_CB)(
void *element,
void *user_data);
67 typedef const void *(*GWEN_CONSTLIST_FOREACH_CB)(
const void *element,
#define GWEN_INHERIT_FUNCTION_LIB_DEFS(t, decl)
GWENHYWFAR_API void * GWEN_ListIterator_Data(GWEN_LIST_ITERATOR *li)
GWENHYWFAR_API void GWEN_ConstList_Clear(GWEN_CONSTLIST *l)
GWENHYWFAR_API GWEN_LIST_ITERATOR * GWEN_ListIterator_new(const GWEN_LIST *l)
GWENHYWFAR_API void GWEN_List_SetRefPtrInfo(GWEN_LIST *l, GWEN_REFPTR_INFO *rpi)
GWENHYWFAR_API GWEN_REFPTR * GWEN_ListIterator_DataRefPtr(GWEN_LIST_ITERATOR *li)
GWENHYWFAR_API GWEN_REFPTR_INFO * GWEN_List_GetRefPtrInfo(const GWEN_LIST *l)
GWENHYWFAR_API GWEN_REFPTR * GWEN_ListIterator_NextRefPtr(GWEN_LIST_ITERATOR *li)
GWENHYWFAR_API const void * GWEN_ConstListIterator_Previous(GWEN_CONSTLIST_ITERATOR *li)
GWENHYWFAR_API GWEN_LIST * GWEN_List_dup(const GWEN_LIST *l)
GWENHYWFAR_API void GWEN_List_Erase(GWEN_LIST *l, GWEN_LIST_ITERATOR *it)
GWENHYWFAR_API GWEN_LIST_ITERATOR * GWEN_List_First(const GWEN_LIST *l)
GWENHYWFAR_API const void * GWEN_ConstListIterator_Data(GWEN_CONSTLIST_ITERATOR *li)
struct GWEN_LIST GWEN_CONSTLIST
Doubly-linked list with const objects.
GWENHYWFAR_API int GWEN_ConstList_IsEmpty(const GWEN_LIST *l)
GWENHYWFAR_API void GWEN_List_PushBackRefPtr(GWEN_LIST *l, GWEN_REFPTR *rp)
struct GWEN_LIST GWEN_LIST
Doubly-linked list.
GWENHYWFAR_API const void * GWEN_ConstListIterator_Next(GWEN_CONSTLIST_ITERATOR *li)
GWENHYWFAR_API GWEN_CONSTLIST_ITERATOR * GWEN_ConstList_FindIter(const GWEN_CONSTLIST *l, const void *element)
void *(* GWEN_LIST_FOREACH_CB)(void *element, void *user_data)
GWENHYWFAR_API void GWEN_List_PushFront(GWEN_LIST *l, void *p)
GWENHYWFAR_API void GWEN_List_free(GWEN_LIST *l)
GWENHYWFAR_API void GWEN_List_Dump(const GWEN_LIST *l, FILE *f, unsigned int indent)
struct GWEN_LIST_ITERATOR GWEN_LIST_ITERATOR
GWENHYWFAR_API void GWEN_List_PopBack(GWEN_LIST *l)
GWENHYWFAR_API const void * GWEN_List_Contains(GWEN_LIST *l, const void *element)
GWENHYWFAR_API void GWEN_List_Unshare(GWEN_LIST *l)
GWENHYWFAR_API void * GWEN_ListIterator_Next(GWEN_LIST_ITERATOR *li)
const void *(* GWEN_CONSTLIST_FOREACH_CB)(const void *element, void *user_data)
GWENHYWFAR_API GWEN_REFPTR * GWEN_List_GetBackRefPtr(const GWEN_LIST *l)
GWENHYWFAR_API void GWEN_ConstList_PushBack(GWEN_CONSTLIST *l, const void *p)
GWENHYWFAR_API void GWEN_List_Clear(GWEN_LIST *l)
GWENHYWFAR_API GWEN_CONSTLIST_ITERATOR * GWEN_ConstList_First(const GWEN_CONSTLIST *l)
GWENHYWFAR_API void GWEN_ConstListIterator_free(GWEN_CONSTLIST_ITERATOR *li)
GWENHYWFAR_API GWEN_LIST * GWEN_List_new(void)
GWENHYWFAR_API void GWEN_ConstList_PopBack(GWEN_CONSTLIST *l)
GWENHYWFAR_API void GWEN_List_Remove(GWEN_LIST *l, const void *element)
GWENHYWFAR_API GWEN_CONSTLIST_ITERATOR * GWEN_ConstList_Last(const GWEN_CONSTLIST *l)
GWENHYWFAR_API void * GWEN_List_GetBack(const GWEN_LIST *l)
GWENHYWFAR_API unsigned int GWEN_ConstList_GetSize(const GWEN_CONSTLIST *l)
GWENHYWFAR_API void GWEN_ListIterator_free(GWEN_LIST_ITERATOR *li)
GWENHYWFAR_API void * GWEN_List_GetFront(const GWEN_LIST *l)
GWENHYWFAR_API GWEN_LIST_ITERATOR * GWEN_List_FindIter(GWEN_LIST *l, const void *element)
struct GWEN_LIST_ITERATOR GWEN_CONSTLIST_ITERATOR
GWENHYWFAR_API const void * GWEN_ConstList_GetFront(const GWEN_CONSTLIST *l)
GWENHYWFAR_API void * GWEN_List_ForEach(GWEN_LIST *list, GWEN_LIST_FOREACH_CB func, void *user_data)
GWENHYWFAR_API unsigned int GWEN_ListIterator_GetLinkCount(const GWEN_LIST_ITERATOR *li)
GWENHYWFAR_API void GWEN_ListIterator_IncLinkCount(GWEN_LIST_ITERATOR *li)
GWENHYWFAR_API GWEN_REFPTR * GWEN_ListIterator_PreviousRefPtr(GWEN_LIST_ITERATOR *li)
GWENHYWFAR_API void GWEN_List_PushBack(GWEN_LIST *l, void *p)
GWENHYWFAR_API GWEN_CONSTLIST_ITERATOR * GWEN_ConstListIterator_new(const GWEN_CONSTLIST *l)
GWENHYWFAR_API void GWEN_List_PushFrontRefPtr(GWEN_LIST *l, GWEN_REFPTR *rp)
GWENHYWFAR_API void GWEN_ConstList_Remove(GWEN_CONSTLIST *l, const void *element)
GWENHYWFAR_API void GWEN_ConstList_free(GWEN_CONSTLIST *l)
GWENHYWFAR_API int GWEN_List_IsEmpty(const GWEN_LIST *l)
GWENHYWFAR_API const void * GWEN_ConstList_GetBack(const GWEN_CONSTLIST *l)
GWENHYWFAR_API void GWEN_ConstList_PopFront(GWEN_CONSTLIST *l)
GWENHYWFAR_API GWEN_CONSTLIST * GWEN_ConstList_new(void)
GWENHYWFAR_API GWEN_LIST_ITERATOR * GWEN_List_Last(const GWEN_LIST *l)
GWENHYWFAR_API GWEN_REFPTR * GWEN_List_GetFrontRefPtr(const GWEN_LIST *l)
GWENHYWFAR_API const void * GWEN_ConstList_ForEach(GWEN_CONSTLIST *list, GWEN_CONSTLIST_FOREACH_CB func, void *user_data)
GWENHYWFAR_API void GWEN_List_PopFront(GWEN_LIST *l)
GWENHYWFAR_API void GWEN_ConstList_PushFront(GWEN_CONSTLIST *l, const void *p)
GWENHYWFAR_API const void * GWEN_ConstList_Contains(const GWEN_CONSTLIST *l, const void *element)
GWENHYWFAR_API void * GWEN_ListIterator_Previous(GWEN_LIST_ITERATOR *li)
GWENHYWFAR_API unsigned int GWEN_List_GetSize(const GWEN_LIST *l)
GWENHYWFAR_API void GWEN_ConstList_Erase(GWEN_CONSTLIST *l, GWEN_CONSTLIST_ITERATOR *it)
struct GWEN_REFPTR_INFO GWEN_REFPTR_INFO
struct GWEN_REFPTR GWEN_REFPTR