Libparserutils
Data Structures | Functions

filter.c File Reference

#include <errno.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <iconv.h>
#include <parserutils/charset/mibenum.h>
#include <parserutils/charset/codec.h>
#include "input/filter.h"
#include "utils/utils.h"

Go to the source code of this file.

Data Structures

struct  parserutils_filter
 Input filter. More...

Functions

static parserutils_error filter_set_defaults (parserutils_filter *input)
 Set an input filter's default settings.
static parserutils_error filter_set_encoding (parserutils_filter *input, const char *enc)
 Set an input filter's encoding.
parserutils_error parserutils__filter_create (const char *int_enc, parserutils_filter **filter)
 Create an input filter.
parserutils_error parserutils__filter_destroy (parserutils_filter *input)
 Destroy an input filter.
parserutils_error parserutils__filter_setopt (parserutils_filter *input, parserutils_filter_opttype type, parserutils_filter_optparams *params)
 Configure an input filter.
parserutils_error parserutils__filter_process_chunk (parserutils_filter *input, const uint8_t **data, size_t *len, uint8_t **output, size_t *outlen)
 Process a chunk of data.
parserutils_error parserutils__filter_reset (parserutils_filter *input)
 Reset an input filter's state.

Function Documentation

parserutils_error filter_set_defaults ( parserutils_filter input) [static]

Set an input filter's default settings.

Parameters:
inputInput filter to configure
Returns:
PARSERUTILS_OK on success, appropriate error otherwise

Definition at line 336 of file filter.c.

References parserutils_filter::encoding, filter_set_encoding(), PARSERUTILS_BADPARM, PARSERUTILS_OK, and parserutils_filter::settings.

Referenced by parserutils__filter_create().

parserutils_error filter_set_encoding ( parserutils_filter input,
const char *  enc 
) [static]
parserutils_error parserutils__filter_create ( const char *  int_enc,
parserutils_filter **  filter 
)

Create an input filter.

Parameters:
int_encDesired encoding of document
filterPointer to location to receive filter instance
Returns:
PARSERUTILS_OK on success, PARSERUTILS_BADPARM on bad parameters, PARSERUTILS_NOMEM on memory exhausion, PARSERUTILS_BADENCODING if the encoding is unsupported

Definition at line 58 of file filter.c.

References parserutils_filter::cd, filter_set_defaults(), parserutils_filter::int_enc, PARSERUTILS_BADENCODING, PARSERUTILS_BADPARM, parserutils_charset_codec_create(), parserutils_charset_codec_destroy(), parserutils_charset_mibenum_from_name(), PARSERUTILS_NOMEM, and PARSERUTILS_OK.

Referenced by parserutils_inputstream_create().

parserutils_error parserutils__filter_destroy ( parserutils_filter input)

Destroy an input filter.

Parameters:
inputPointer to filter instance
Returns:
PARSERUTILS_OK on success, appropriate error otherwise

Definition at line 114 of file filter.c.

References parserutils_filter::cd, PARSERUTILS_BADPARM, parserutils_charset_codec_destroy(), and PARSERUTILS_OK.

Referenced by parserutils_inputstream_create(), and parserutils_inputstream_destroy().

parserutils_error parserutils__filter_process_chunk ( parserutils_filter input,
const uint8_t **  data,
size_t *  len,
uint8_t **  output,
size_t *  outlen 
)

Process a chunk of data.

Parameters:
inputPointer to filter instance
dataPointer to pointer to input buffer
lenPointer to length of input buffer
outputPointer to pointer to output buffer
outlenPointer to length of output buffer
Returns:
PARSERUTILS_OK on success, appropriate error otherwise

Call this with an input buffer length of 0 to flush any buffers.

Definition at line 179 of file filter.c.

References parserutils_filter::cd, PARSERUTILS_BADPARM, parserutils_charset_codec_decode(), parserutils_charset_codec_encode(), PARSERUTILS_NOMEM, and PARSERUTILS_OK.

Referenced by parserutils_inputstream_refill_buffer().

parserutils_error parserutils__filter_reset ( parserutils_filter input)

Reset an input filter's state.

Parameters:
inputThe input filter to reset
Returns:
PARSERUTILS_OK on success, appropriate error otherwise

Definition at line 301 of file filter.c.

References parserutils_filter::cd, PARSERUTILS_BADPARM, parserutils_charset_codec_reset(), and PARSERUTILS_OK.

parserutils_error parserutils__filter_setopt ( parserutils_filter input,
parserutils_filter_opttype  type,
parserutils_filter_optparams params 
)

Configure an input filter.

Parameters:
inputPointer to filter instance
typeInput option type to configure
paramsOption-specific parameters
Returns:
PARSERUTILS_OK on success, appropriate error otherwise

Definition at line 149 of file filter.c.

References parserutils_filter_optparams::encoding, filter_set_encoding(), parserutils_filter_optparams::name, PARSERUTILS_BADPARM, PARSERUTILS_FILTER_SET_ENCODING, and PARSERUTILS_OK.

Referenced by parserutils_inputstream_change_charset(), parserutils_inputstream_create(), and parserutils_inputstream_refill_buffer().