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_buffer_h_
  9. #define parserutils_utils_buffer_h_
  10.  
  11. #ifdef __cplusplus
  12. extern "C"
  13. {
  14. #endif
  15.  
  16. #include <parserutils/errors.h>
  17. #include <parserutils/functypes.h>
  18.  
  19. struct parserutils_buffer
  20. {
  21.         uint8_t *data;
  22.         size_t length;
  23.         size_t allocated;
  24.  
  25.         parserutils_alloc alloc;
  26.         void *pw;
  27. };
  28. typedef struct parserutils_buffer parserutils_buffer;
  29.  
  30. parserutils_error parserutils_buffer_create(parserutils_alloc alloc,
  31.                 void *pw, parserutils_buffer **buffer);
  32. parserutils_error parserutils_buffer_destroy(parserutils_buffer *buffer);
  33.  
  34. parserutils_error parserutils_buffer_append(parserutils_buffer *buffer,
  35.                 const uint8_t *data, size_t len);
  36. parserutils_error parserutils_buffer_insert(parserutils_buffer *buffer,
  37.                 size_t offset, const uint8_t *data, size_t len);
  38. parserutils_error parserutils_buffer_discard(parserutils_buffer *buffer,
  39.                 size_t offset, size_t len);
  40.  
  41. parserutils_error parserutils_buffer_grow(parserutils_buffer *buffer);
  42.  
  43. parserutils_error parserutils_buffer_randomise(parserutils_buffer *buffer);
  44.  
  45. #ifdef __cplusplus
  46. }
  47. #endif
  48.  
  49. #endif
  50.  
  51.