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