vector.c File Reference

#include <inttypes.h>
#include <string.h>
#include <parserutils/utils/vector.h>
#include <stdio.h>

Go to the source code of this file.

Data Structures

struct  parserutils_vector
 Vector object. More...

Functions

parserutils_error parserutils_vector_create (size_t item_size, size_t chunk_size, parserutils_vector **vector)
 Create a vector.
parserutils_error parserutils_vector_destroy (parserutils_vector *vector)
 Destroy a vector instance.
parserutils_error parserutils_vector_append (parserutils_vector *vector, void *item)
 Append an item to the vector.
parserutils_error parserutils_vector_clear (parserutils_vector *vector)
 Clear a vector.
parserutils_error parserutils_vector_remove_last (parserutils_vector *vector)
 Remove the last item from a vector.
parserutils_error parserutils_vector_get_length (parserutils_vector *vector, size_t *length)
 Acquire the length (in items) of the vector.
const void * parserutils_vector_iterate (const parserutils_vector *vector, int32_t *ctx)
 Iterate over a vector.
const void * parserutils_vector_peek (const parserutils_vector *vector, int32_t ctx)
 Peek at an item in a vector.
void parserutils_vector_dump (parserutils_vector *vector, const char *prefix, void(*printer)(void *item))


Function Documentation

parserutils_error parserutils_vector_append ( parserutils_vector vector,
void *  item 
)

Append an item to the vector.

Parameters:
vector The vector to append to
item The item to append
Returns:
PARSERUTILS_OK on success, appropriate error otherwise

Definition at line 87 of file vector.c.

References parserutils_vector::chunk_size, parserutils_vector::current_item, parserutils_vector::item_size, parserutils_vector::items, parserutils_vector::items_allocated, PARSERUTILS_BADPARM, PARSERUTILS_INVALID, PARSERUTILS_NOMEM, and PARSERUTILS_OK.

parserutils_error parserutils_vector_clear ( parserutils_vector vector  ) 

Clear a vector.

Parameters:
vector The vector to clear
Returns:
PARSERUTILS_OK on success, appropriate error otherwise.

Definition at line 125 of file vector.c.

References parserutils_vector::current_item, PARSERUTILS_BADPARM, PARSERUTILS_INVALID, and PARSERUTILS_OK.

parserutils_error parserutils_vector_create ( size_t  item_size,
size_t  chunk_size,
parserutils_vector **  vector 
)

Create a vector.

Parameters:
item_size Length, in bytes, of an item in the vector
chunk_size Number of vector slots in a chunk
vector Pointer to location to receive vector instance
Returns:
PARSERUTILS_OK on success, PARSERUTILS_BADPARM on bad parameters, PARSERUTILS_NOMEM on memory exhaustion

Definition at line 35 of file vector.c.

References parserutils_vector::chunk_size, parserutils_vector::current_item, parserutils_vector::item_size, parserutils_vector::items, parserutils_vector::items_allocated, PARSERUTILS_BADPARM, PARSERUTILS_NOMEM, and PARSERUTILS_OK.

parserutils_error parserutils_vector_destroy ( parserutils_vector vector  ) 

Destroy a vector instance.

Parameters:
vector The vector to destroy
Returns:
PARSERUTILS_OK on success, appropriate error otherwise.

Definition at line 69 of file vector.c.

References parserutils_vector::items, PARSERUTILS_BADPARM, and PARSERUTILS_OK.

void parserutils_vector_dump ( parserutils_vector vector,
const char *  prefix,
void(*)(void *item)  printer 
)

parserutils_error parserutils_vector_get_length ( parserutils_vector vector,
size_t *  length 
)

Acquire the length (in items) of the vector.

Parameters:
vector The vector to interrogate.
length Pointer to location to receive length information.
Returns:
PARSERUTILS_OK on success, appropriate error otherwise

Definition at line 164 of file vector.c.

References parserutils_vector::current_item, PARSERUTILS_BADPARM, and PARSERUTILS_OK.

const void* parserutils_vector_iterate ( const parserutils_vector vector,
int32_t *  ctx 
)

Iterate over a vector.

Parameters:
vector The vector to iterate over
ctx Pointer to an integer for the iterator to use as context.
Returns:
Pointer to current item, or NULL if no more
Note:
The value pointed to by ctx must be zero to begin the iteration.

Definition at line 187 of file vector.c.

References parserutils_vector::current_item, parserutils_vector::item_size, and parserutils_vector::items.

const void* parserutils_vector_peek ( const parserutils_vector vector,
int32_t  ctx 
)

Peek at an item in a vector.

Parameters:
vector The vector to iterate over
ctx Integer for the iterator to use as context.
Returns:
Pointer to item, or NULL if no more

Definition at line 212 of file vector.c.

References parserutils_vector::current_item, parserutils_vector::item_size, and parserutils_vector::items.

parserutils_error parserutils_vector_remove_last ( parserutils_vector vector  ) 

Remove the last item from a vector.

Parameters:
vector The vector to remove from
Returns:
PARSERUTILS_OK on success, appropriate error otherwise

Definition at line 144 of file vector.c.

References parserutils_vector::current_item, PARSERUTILS_BADPARM, PARSERUTILS_INVALID, and PARSERUTILS_OK.


Generated on Wed Jul 29 11:59:21 2015 for Libparserutils by  doxygen 1.5.6