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