1 /* 2 * This file is part of LibParserUtils. 3 * Licensed under the MIT License, 4 * http://www.opensource.org/licenses/mit-license.php 5 * Copyright 2008 John-Mark Bell <jmb@netsurf-browser.org> 6 */ 7 8 #ifndef parserutils_utils_vector_h_ 9 #define parserutils_utils_vector_h_ 10 11 #ifdef __cplusplus 12 extern "C" 13 { 14 #endif 15 16 #include <stddef.h> 17 18 #include <parserutils/errors.h> 19 #include <parserutils/functypes.h> 20 21 struct parserutils_vector; 22 typedef struct parserutils_vector parserutils_vector; 23 24 parserutils_error parserutils_vector_create(size_t item_size, 25 size_t chunk_size, parserutils_vector **vector); 26 parserutils_error parserutils_vector_destroy(parserutils_vector *vector); 27 28 parserutils_error parserutils_vector_append(parserutils_vector *vector, 29 void *item); 30 parserutils_error parserutils_vector_clear(parserutils_vector *vector); 31 parserutils_error parserutils_vector_remove_last(parserutils_vector *vector); 32 parserutils_error parserutils_vector_get_length(parserutils_vector *vector, size_t *length); 33 34 const void *parserutils_vector_iterate(const parserutils_vector *vector, 35 int32_t *ctx); 36 const void *parserutils_vector_peek(const parserutils_vector *vector, 37 int32_t ctx); 38 39 #ifdef __cplusplus 40 } 41 #endif 42 43 #endif 44 45