/* * This file is part of LibParserUtils. * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2007 John-Mark Bell */ #ifndef parserutils_input_filter_h_ #define parserutils_input_filter_h_ #include #include #include typedef struct parserutils_filter parserutils_filter; /** * Input filter option types */ typedef enum parserutils_filter_opttype { PARSERUTILS_FILTER_SET_ENCODING = 0 } parserutils_filter_opttype; /** * Input filter option parameters */ typedef union parserutils_filter_optparams { /** Parameters for encoding setting */ struct { /** Encoding name */ const char *name; } encoding; } parserutils_filter_optparams; /* Create an input filter */ parserutils_error parserutils_filter_create(const char *int_enc, parserutils_alloc alloc, void *pw, parserutils_filter **filter); /* Destroy an input filter */ parserutils_error parserutils_filter_destroy(parserutils_filter *input); /* Configure an input filter */ parserutils_error parserutils_filter_setopt(parserutils_filter *input, parserutils_filter_opttype type, parserutils_filter_optparams *params); /* Process a chunk of data */ parserutils_error parserutils_filter_process_chunk(parserutils_filter *input, const uint8_t **data, size_t *len, uint8_t **output, size_t *outlen); /* Reset an input filter's state */ parserutils_error parserutils_filter_reset(parserutils_filter *input); #endif