1 2 #ifndef _SCHRO_LIST_H_ 3 #define _SCHRO_LIST_H_ 4 5 #include <schroedinger/schroutils.h> 6 7 SCHRO_BEGIN_DECLS 8 9 #ifdef SCHRO_ENABLE_UNSTABLE_API 10 11 typedef struct _SchroList SchroList; 12 13 typedef void (*SchroListFreeFunc)(void *member, void *priv); 14 15 struct _SchroList { 16 void **members; 17 int n; 18 int n_alloc; 19 20 SchroListFreeFunc free; 21 void *priv; 22 }; 23 24 SchroList *schro_list_new (void); 25 SchroList *schro_list_new_full (SchroListFreeFunc freefunc, void *priv); 26 void schro_list_free (SchroList *list); 27 28 void *schro_list_get (SchroList *list, int i); 29 int schro_list_get_size (SchroList *list); 30 31 void schro_list_append (SchroList *list, void *value); 32 void schro_list_insert (SchroList *list, int i, void *value); 33 void *schro_list_remove (SchroList *list, int i); 34 void schro_list_delete (SchroList *list, int i); 35 void *schro_list_replace (SchroList *list, int i, void *value); 36 void schro_list_prepend (SchroList *list, void *value); 37 38 #endif 39 40 SCHRO_END_DECLS 41 42 #endif 43 44 45