00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 #ifndef LL_H
00023 #define LL_H 1
00024 
00025 #ifdef __cplusplus
00026     extern "C" {
00027 #endif
00028 
00029 
00030 
00031 
00032 
00036 typedef struct elem_s elem_t;
00037 
00041 typedef struct list_s list_t;
00042 
00046 typedef void elem_destroy_cb(void *data);
00047 
00048 
00049 
00050 
00051 
00059 list_t *list_new(elem_destroy_cb *cb);
00060 
00068 void list_destroy(list_t *list);
00069 
00077 void list_flush(list_t *list);
00078 
00079 
00080 
00081 
00089 void *element_data(elem_t *elem);
00090 
00091 
00092 
00093 
00094 
00103 elem_t *list_append(list_t *list, void *data);
00104 
00111 int list_size(list_t *list);
00112 
00121 elem_t *list_get(list_t *list, int idx);
00122 
00129 elem_t *list_first(list_t *list);
00130 
00138 elem_t *list_next(list_t *list);
00139 
00140 
00141 
00142 
00143 
00144 #ifdef __cplusplus
00145     }
00146 #endif
00147 
00148 #endif