00001 /* 00002 * This file is part of LibParserUtils. 00003 * Licensed under the MIT License, 00004 * http://www.opensource.org/licenses/mit-license.php 00005 * Copyright 2008 John-Mark Bell <jmb@netsurf-browser.org> 00006 */ 00007 00008 #ifndef parserutils_utils_buffer_h_ 00009 #define parserutils_utils_buffer_h_ 00010 00011 #ifdef __cplusplus 00012 extern "C" 00013 { 00014 #endif 00015 00016 #include <parserutils/errors.h> 00017 #include <parserutils/functypes.h> 00018 00019 struct parserutils_buffer 00020 { 00021 uint8_t *data; 00022 size_t length; 00023 size_t allocated; 00024 }; 00025 typedef struct parserutils_buffer parserutils_buffer; 00026 00027 parserutils_error parserutils_buffer_create(parserutils_buffer **buffer); 00028 parserutils_error parserutils_buffer_destroy(parserutils_buffer *buffer); 00029 00030 parserutils_error parserutils_buffer_append(parserutils_buffer *buffer, 00031 const uint8_t *data, size_t len); 00032 parserutils_error parserutils_buffer_insert(parserutils_buffer *buffer, 00033 size_t offset, const uint8_t *data, size_t len); 00034 parserutils_error parserutils_buffer_discard(parserutils_buffer *buffer, 00035 size_t offset, size_t len); 00036 00037 parserutils_error parserutils_buffer_grow(parserutils_buffer *buffer); 00038 00039 parserutils_error parserutils_buffer_randomise(parserutils_buffer *buffer); 00040 00041 #ifdef __cplusplus 00042 } 00043 #endif 00044 00045 #endif 00046
1.5.6