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 2007 John-Mark Bell <jmb@netsurf-browser.org> 00006 */ 00007 00008 #ifndef parserutils_input_filter_h_ 00009 #define parserutils_input_filter_h_ 00010 00011 #include <inttypes.h> 00012 00013 #include <parserutils/errors.h> 00014 #include <parserutils/functypes.h> 00015 00016 typedef struct parserutils_filter parserutils_filter; 00017 00021 typedef enum parserutils_filter_opttype { 00022 PARSERUTILS_FILTER_SET_ENCODING = 0 00023 } parserutils_filter_opttype; 00024 00028 typedef union parserutils_filter_optparams { 00030 struct { 00032 const char *name; 00033 } encoding; 00034 } parserutils_filter_optparams; 00035 00036 00037 /* Create an input filter */ 00038 parserutils_error parserutils__filter_create(const char *int_enc, 00039 parserutils_filter **filter); 00040 /* Destroy an input filter */ 00041 parserutils_error parserutils__filter_destroy(parserutils_filter *input); 00042 00043 /* Configure an input filter */ 00044 parserutils_error parserutils__filter_setopt(parserutils_filter *input, 00045 parserutils_filter_opttype type, 00046 parserutils_filter_optparams *params); 00047 00048 /* Process a chunk of data */ 00049 parserutils_error parserutils__filter_process_chunk(parserutils_filter *input, 00050 const uint8_t **data, size_t *len, 00051 uint8_t **output, size_t *outlen); 00052 00053 /* Reset an input filter's state */ 00054 parserutils_error parserutils__filter_reset(parserutils_filter *input); 00055 00056 #endif 00057
1.5.6