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. More...
 
static parserutils_error filter_set_encoding (parserutils_filter *input, const char *enc)
 Set an input filter's encoding. More...
 
parserutils_error parserutils__filter_create (const char *int_enc, parserutils_filter **filter)
 Create an input filter. More...
 
parserutils_error parserutils__filter_destroy (parserutils_filter *input)
 Destroy an input filter. More...
 
parserutils_error parserutils__filter_setopt (parserutils_filter *input, parserutils_filter_opttype type, parserutils_filter_optparams *params)
 Configure an input filter. More...
 
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. More...
 
parserutils_error parserutils__filter_reset (parserutils_filter *input)
 Reset an input filter's state. More...
 

Function Documentation

◆ filter_set_defaults()

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().

◆ filter_set_encoding()

parserutils_error filter_set_encoding ( parserutils_filter input,
const char *  enc 
)
static

◆ parserutils__filter_create()

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__filter_destroy()

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__filter_process_chunk()

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, len, PARSERUTILS_BADPARM, parserutils_charset_codec_decode(), parserutils_charset_codec_encode(), PARSERUTILS_NOMEM, and PARSERUTILS_OK.

Referenced by parserutils_inputstream_refill_buffer().

◆ parserutils__filter_reset()

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__filter_setopt()

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().