gwenhywfar  5.11.1beta
list.h
Go to the documentation of this file.
1 /***************************************************************************
2  $RCSfile$
3  -------------------
4  cvs : $Id$
5  begin : Sat Nov 15 2003
6  copyright : (C) 2003 by Martin Preuss
7  email : martin@libchipcard.de
8 
9  ***************************************************************************
10  * *
11  * This library is free software; you can redistribute it and/or *
12  * modify it under the terms of the GNU Lesser General Public *
13  * License as published by the Free Software Foundation; either *
14  * version 2.1 of the License, or (at your option) any later version. *
15  * *
16  * This library is distributed in the hope that it will be useful, *
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
19  * Lesser General Public License for more details. *
20  * *
21  * You should have received a copy of the GNU Lesser General Public *
22  * License along with this library; if not, write to the Free Software *
23  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, *
24  * MA 02111-1307 USA *
25  * *
26  ***************************************************************************/
27 
28 
29 #ifndef GWENHYWFAR_LIST_H
30 #define GWENHYWFAR_LIST_H
31 
32 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
38 #include <gwenhywfar/inherit.h>
39 #include <gwenhywfar/refptr.h>
40 /* This is needed for PalmOS, because it define some functions needed */
41 #include <string.h>
42 #include <stdio.h>
43 
44 
50 
55 typedef struct GWEN_LIST GWEN_LIST;
56 
58 typedef void *(*GWEN_LIST_FOREACH_CB)(void *element, void *user_data);
59 
64 typedef struct GWEN_LIST GWEN_CONSTLIST;
65 
67 typedef const void *(*GWEN_CONSTLIST_FOREACH_CB)(const void *element,
68  void *user_data);
69 
73 
77 
78 
81 
82 
83 
86 
91 
96 
97 
100 
101 
106 void GWEN_List_Dump(const GWEN_LIST *l, FILE *f, unsigned int indent);
107 
112 void GWEN_List_PushBack(GWEN_LIST *l, void *p);
113 
119 
125 void GWEN_List_PushFront(GWEN_LIST *l, void *p);
126 
133 
140 
147 
153 void *GWEN_List_GetBack(const GWEN_LIST *l);
154 
161 
170 
178 void GWEN_List_Remove(GWEN_LIST *l, const void *element);
179 
180 
187 unsigned int GWEN_List_GetSize(const GWEN_LIST *l);
188 
193 
196 
199 
206 
213 
220 
229 
236 const void *GWEN_List_Contains(GWEN_LIST *l, const void *element);
237 
252  void *user_data);
253 
257 
261 
267 
271 
278 
285 
292 
299 
306 
313 
316 
319 
320 
321 
322 
326 
332 
337 void GWEN_ConstList_PushBack(GWEN_CONSTLIST *l, const void *p);
338 
344 void GWEN_ConstList_PushFront(GWEN_CONSTLIST *l, const void *p);
345 
352 
359 
366 unsigned int GWEN_ConstList_GetSize(const GWEN_CONSTLIST *l);
367 
372 
379 
386 
393 
409  void *user_data);
410 
419 
426 const void *GWEN_ConstList_Contains(const GWEN_CONSTLIST *l, const void *element);
427 
428 
437 
445 void GWEN_ConstList_Remove(GWEN_CONSTLIST *l, const void *element);
446 
450 
454 
460 
464 
471 
478 
485 
486 
487  /* defgroup */
489 
490 
491 #ifdef __cplusplus
492 }
493 #endif
494 
495 
496 #endif
497 
498 
499 
#define GWENHYWFAR_API
Definition: gwenhywfarapi.h:67
#define GWEN_INHERIT_FUNCTION_LIB_DEFS(t, decl)
Definition: inherit.h:125
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.
Definition: list.h:64
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.
Definition: list.h:55
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)
Definition: list.h:58
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
Definition: list.h:72
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)
Definition: list.h:67
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
Definition: list.h:76
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
Definition: refptr.h:44
struct GWEN_REFPTR GWEN_REFPTR
Definition: refptr.h:45