Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  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_alloc alloc, void *pw,
  26.                 parserutils_vector **vector);
  27. parserutils_error parserutils_vector_destroy(parserutils_vector *vector);
  28.  
  29. parserutils_error parserutils_vector_append(parserutils_vector *vector,
  30.                 void *item);
  31. parserutils_error parserutils_vector_clear(parserutils_vector *vector);
  32. parserutils_error parserutils_vector_remove_last(parserutils_vector *vector);
  33. parserutils_error parserutils_vector_get_length(parserutils_vector *vector, size_t *length);
  34.  
  35. const void *parserutils_vector_iterate(const parserutils_vector *vector,
  36.                 int32_t *ctx);
  37. const void *parserutils_vector_peek(const parserutils_vector *vector,
  38.                 int32_t ctx);
  39.  
  40. #ifdef __cplusplus
  41. }
  42. #endif
  43.  
  44. #endif
  45.  
  46.