| /* |
| * $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 |