XenevaOS
Loading...
Searching...
No Matches
Classes | Functions
vector.c File Reference
#include <inttypes.h>
#include <string.h>
#include <parserutils/utils/vector.h>
#include <stdio.h>
Include dependency graph for vector.c:

Classes

struct  parserutils_vector
 

Functions

parserutils_error parserutils_vector_create (size_t item_size, size_t chunk_size, parserutils_vector **vector)
 
parserutils_error parserutils_vector_destroy (parserutils_vector *vector)
 
parserutils_error parserutils_vector_append (parserutils_vector *vector, void *item)
 
parserutils_error parserutils_vector_clear (parserutils_vector *vector)
 
parserutils_error parserutils_vector_remove_last (parserutils_vector *vector)
 
parserutils_error parserutils_vector_get_length (parserutils_vector *vector, size_t *length)
 
const void * parserutils_vector_iterate (const parserutils_vector *vector, int32_t *ctx)
 
const void * parserutils_vector_peek (const parserutils_vector *vector, int32_t ctx)
 
void parserutils_vector_dump (parserutils_vector *vector, const char *prefix, void(*printer)(void *item))
 

Function Documentation

◆ parserutils_vector_append()

parserutils_error parserutils_vector_append ( parserutils_vector *  vector,
void *  item 
)

Append an item to the vector

Parameters
vectorThe vector to append to
itemThe item to append
Returns
PARSERUTILS_OK on success, appropriate error otherwise

◆ parserutils_vector_clear()

parserutils_error parserutils_vector_clear ( parserutils_vector *  vector)

Clear a vector

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

◆ parserutils_vector_create()

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

Create a vector

Parameters
item_sizeLength, in bytes, of an item in the vector
chunk_sizeNumber of vector slots in a chunk
vectorPointer to location to receive vector instance
Returns
PARSERUTILS_OK on success, PARSERUTILS_BADPARM on bad parameters, PARSERUTILS_NOMEM on memory exhaustion

◆ parserutils_vector_destroy()

parserutils_error parserutils_vector_destroy ( parserutils_vector *  vector)

Destroy a vector instance

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

◆ parserutils_vector_dump()

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

◆ parserutils_vector_get_length()

parserutils_error parserutils_vector_get_length ( parserutils_vector *  vector,
size_t *  length 
)

Acquire the length (in items) of the vector.

Parameters
vectorThe vector to interrogate.
lengthPointer to location to receive length information.
Returns
PARSERUTILS_OK on success, appropriate error otherwise

◆ parserutils_vector_iterate()

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

Iterate over a vector

Parameters
vectorThe vector to iterate over
ctxPointer 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.

◆ parserutils_vector_peek()

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

Peek at an item in a vector

Parameters
vectorThe vector to iterate over
ctxInteger for the iterator to use as context.
Returns
Pointer to item, or NULL if no more

◆ parserutils_vector_remove_last()

parserutils_error parserutils_vector_remove_last ( parserutils_vector *  vector)

Remove the last item from a vector

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