From 2777a04ed2ba4fd36138b991d66a32a283361f7e Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Thu, 1 May 2008 16:34:46 +0000 Subject: Import parser construction utility library svn path=/trunk/libparserutils/; revision=4111 --- include/parserutils/utils/buffer.h | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 include/parserutils/utils/buffer.h (limited to 'include/parserutils/utils') diff --git a/include/parserutils/utils/buffer.h b/include/parserutils/utils/buffer.h new file mode 100644 index 0000000..f3a1883 --- /dev/null +++ b/include/parserutils/utils/buffer.h @@ -0,0 +1,39 @@ +/* + * This file is part of LibParserUtils. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2008 John-Mark Bell + */ + +#ifndef parserutils_utils_buffer_h_ +#define parserutils_utils_buffer_h_ + +#include +#include + +struct parserutils_buffer +{ + uint8_t *data; + size_t length; + size_t allocated; + + parserutils_alloc alloc; + void *pw; +}; +typedef struct parserutils_buffer parserutils_buffer; + +parserutils_buffer *parserutils_buffer_create(parserutils_alloc alloc, + void *pw); +void parserutils_buffer_destroy(parserutils_buffer *buffer); + +parserutils_error parserutils_buffer_append(parserutils_buffer *buffer, + const uint8_t *data, size_t len); +parserutils_error parserutils_buffer_insert(parserutils_buffer *buffer, + size_t offset, const uint8_t *data, size_t len); +parserutils_error parserutils_buffer_discard(parserutils_buffer *buffer, + size_t offset, size_t len); + +parserutils_error parserutils_buffer_grow(parserutils_buffer *buffer); + +#endif + -- cgit v1.2.3