diff options
Diffstat (limited to 'arraylist.h')
-rw-r--r-- | arraylist.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/arraylist.h b/arraylist.h new file mode 100644 index 0000000..d82f14a --- /dev/null +++ b/arraylist.h @@ -0,0 +1,52 @@ +/* + * $Id: arraylist.h,v 1.2 2004/07/21 01:24:33 mclark Exp $ + * + * Copyright Metaparadigm Pte. Ltd. 2004. + * Michael Clark <michael@metaparadigm.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public (LGPL) + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details: http://www.gnu.org/ + * + */ + +#ifndef _arraylist_h_ +#define _arraylist_h_ + +#define ARRAY_LIST_DEFAULT_SIZE 32 + +typedef void (array_list_free_fn) (void *data); + +struct array_list +{ + void **array; + int length; + int size; + array_list_free_fn *free_fn; +}; + +extern struct array_list* +array_list_new(array_list_free_fn *free_fn); + +extern void +array_list_free(struct array_list *this); + +extern void* +array_list_get_idx(struct array_list *this, int i); + +extern int +array_list_put_idx(struct array_list *this, int i, void *data); + +extern int +array_list_add(struct array_list *this, void *data); + +extern int +array_list_length(struct array_list *this); + +#endif |