/* * $Id$ * * Copyright Metaparadigm Pte. Ltd. 2004. * Michael Clark * * 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 *al); extern void* array_list_get_idx(struct array_list *al, int i); extern int array_list_put_idx(struct array_list *al, int i, void *data); extern int array_list_add(struct array_list *al, void *data); extern int array_list_length(struct array_list *al); #endif