Libparserutils
vector.h
Go to the documentation of this file.
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
12extern "C"
13{
14#endif
15
16#include <stddef.h>
17
18#include <parserutils/errors.h>
20
23
25 size_t chunk_size, parserutils_vector **vector);
27
29 void *item);
33
34const void *parserutils_vector_iterate(const parserutils_vector *vector,
35 int32_t *ctx);
36const void *parserutils_vector_peek(const parserutils_vector *vector,
37 int32_t ctx);
38
39#ifdef __cplusplus
40}
41#endif
42
43#endif
44
parserutils_error
Definition errors.h:18
Vector object.
Definition vector.c:17
size_t item_size
Size of an item in the vector.
Definition vector.c:18
size_t chunk_size
Size of a vector chunk.
Definition vector.c:19
parserutils_error parserutils_vector_get_length(parserutils_vector *vector, size_t *length)
Acquire the length (in items) of the vector.
Definition vector.c:164
parserutils_error parserutils_vector_destroy(parserutils_vector *vector)
Destroy a vector instance.
Definition vector.c:69
parserutils_error parserutils_vector_create(size_t item_size, size_t chunk_size, parserutils_vector **vector)
Create a vector.
Definition vector.c:35
parserutils_error parserutils_vector_append(parserutils_vector *vector, void *item)
Append an item to the vector.
Definition vector.c:87
const void * parserutils_vector_peek(const parserutils_vector *vector, int32_t ctx)
Peek at an item in a vector.
Definition vector.c:212
parserutils_error parserutils_vector_remove_last(parserutils_vector *vector)
Remove the last item from a vector.
Definition vector.c:144
const void * parserutils_vector_iterate(const parserutils_vector *vector, int32_t *ctx)
Iterate over a vector.
Definition vector.c:187
parserutils_error parserutils_vector_clear(parserutils_vector *vector)
Clear a vector.
Definition vector.c:125