00001 /* 00002 * This file is part of LibParserUtils. 00003 * Licensed under the MIT License, 00004 * http://www.opensource.org/licenses/mit-license.php 00005 * Copyright 2008 John-Mark Bell <jmb@netsurf-browser.org> 00006 */ 00007 00008 #ifndef parserutils_utils_vector_h_ 00009 #define parserutils_utils_vector_h_ 00010 00011 #ifdef __cplusplus 00012 extern "C" 00013 { 00014 #endif 00015 00016 #include <stddef.h> 00017 00018 #include <parserutils/errors.h> 00019 #include <parserutils/functypes.h> 00020 00021 struct parserutils_vector; 00022 typedef struct parserutils_vector parserutils_vector; 00023 00024 parserutils_error parserutils_vector_create(size_t item_size, 00025 size_t chunk_size, parserutils_vector **vector); 00026 parserutils_error parserutils_vector_destroy(parserutils_vector *vector); 00027 00028 parserutils_error parserutils_vector_append(parserutils_vector *vector, 00029 void *item); 00030 parserutils_error parserutils_vector_clear(parserutils_vector *vector); 00031 parserutils_error parserutils_vector_remove_last(parserutils_vector *vector); 00032 parserutils_error parserutils_vector_get_length(parserutils_vector *vector, size_t *length); 00033 00034 const void *parserutils_vector_iterate(const parserutils_vector *vector, 00035 int32_t *ctx); 00036 const void *parserutils_vector_peek(const parserutils_vector *vector, 00037 int32_t ctx); 00038 00039 #ifdef __cplusplus 00040 } 00041 #endif 00042 00043 #endif 00044
1.5.6