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 2007 John-Mark Bell <jmb@netsurf-browser.org>
  6.  */
  7.  
  8. #ifndef parserutils_input_filter_h_
  9. #define parserutils_input_filter_h_
  10.  
  11. #include <inttypes.h>
  12.  
  13. #include <parserutils/errors.h>
  14. #include <parserutils/functypes.h>
  15.  
  16. typedef struct parserutils_filter parserutils_filter;
  17.  
  18. /**
  19.  * Input filter option types
  20.  */
  21. typedef enum parserutils_filter_opttype {
  22.         PARSERUTILS_FILTER_SET_ENCODING       = 0
  23. } parserutils_filter_opttype;
  24.  
  25. /**
  26.  * Input filter option parameters
  27.  */
  28. typedef union parserutils_filter_optparams {
  29.         /** Parameters for encoding setting */
  30.         struct {
  31.                 /** Encoding name */
  32.                 const char *name;
  33.         } encoding;
  34. } parserutils_filter_optparams;
  35.  
  36.  
  37. /* Create an input filter */
  38. parserutils_error parserutils__filter_create(const char *int_enc,
  39.                 parserutils_alloc alloc, void *pw, parserutils_filter **filter);
  40. /* Destroy an input filter */
  41. parserutils_error parserutils__filter_destroy(parserutils_filter *input);
  42.  
  43. /* Configure an input filter */
  44. parserutils_error parserutils__filter_setopt(parserutils_filter *input,
  45.                 parserutils_filter_opttype type,
  46.                 parserutils_filter_optparams *params);
  47.  
  48. /* Process a chunk of data */
  49. parserutils_error parserutils__filter_process_chunk(parserutils_filter *input,
  50.                 const uint8_t **data, size_t *len,
  51.                 uint8_t **output, size_t *outlen);
  52.  
  53. /* Reset an input filter's state */
  54. parserutils_error parserutils__filter_reset(parserutils_filter *input);
  55.  
  56. #endif
  57.  
  58.