Libparserutils
Functions | Variables

codec.c File Reference

#include <string.h>
#include "charset/aliases.h"
#include "charset/codecs/codec_impl.h"

Go to the source code of this file.

Functions

parserutils_error parserutils_charset_codec_create (const char *charset, parserutils_charset_codec **codec)
 Create a charset codec.
parserutils_error parserutils_charset_codec_destroy (parserutils_charset_codec *codec)
 Destroy a charset codec.
parserutils_error parserutils_charset_codec_setopt (parserutils_charset_codec *codec, parserutils_charset_codec_opttype type, parserutils_charset_codec_optparams *params)
 Configure a charset codec.
parserutils_error parserutils_charset_codec_encode (parserutils_charset_codec *codec, const uint8_t **source, size_t *sourcelen, uint8_t **dest, size_t *destlen)
 Encode a chunk of UCS-4 data into a codec's charset.
parserutils_error parserutils_charset_codec_decode (parserutils_charset_codec *codec, const uint8_t **source, size_t *sourcelen, uint8_t **dest, size_t *destlen)
 Decode a chunk of data in a codec's charset into UCS-4.
parserutils_error parserutils_charset_codec_reset (parserutils_charset_codec *codec)
 Clear a charset codec's encoding state.

Variables

parserutils_charset_handler charset_ascii_codec_handler
parserutils_charset_handler charset_8859_codec_handler
parserutils_charset_handler charset_ext8_codec_handler
parserutils_charset_handler charset_utf8_codec_handler
parserutils_charset_handler charset_utf16_codec_handler
static
parserutils_charset_handler
handler_table []

Function Documentation

parserutils_error parserutils_charset_codec_create ( const char *  charset,
parserutils_charset_codec **  codec 
)

Create a charset codec.

Parameters:
charsetTarget charset
codecPointer to location to receive codec instance
Returns:
PARSERUTILS_OK on success, PARSERUTILS_BADPARM on bad parameters, PARSERUTILS_NOMEM on memory exhaustion, PARSERUTILS_BADENCODING on unsupported charset

Definition at line 38 of file codec.c.

References parserutils_charset_codec::errormode, parserutils_charset_aliases_canon::mib_enum, parserutils_charset_codec::mibenum, parserutils_charset_aliases_canon::name, parserutils__charset_alias_canonicalise(), PARSERUTILS_BADENCODING, PARSERUTILS_BADPARM, PARSERUTILS_CHARSET_CODEC_ERROR_LOOSE, and PARSERUTILS_OK.

Referenced by filter_set_encoding(), and parserutils__filter_create().

parserutils_error parserutils_charset_codec_decode ( parserutils_charset_codec codec,
const uint8_t **  source,
size_t *  sourcelen,
uint8_t **  dest,
size_t *  destlen 
)

Decode a chunk of data in a codec's charset into UCS-4.

Parameters:
codecThe codec to use
sourcePointer to pointer to source data
sourcelenPointer to length (in bytes) of source data
destPointer to pointer to output buffer
destlenPointer to length (in bytes) of output buffer
Returns:
PARSERUTILS_OK on success, appropriate error otherwise.

source, sourcelen, dest and destlen will be updated appropriately on exit

Call this with a source length of 0 to flush any buffers.

Definition at line 163 of file codec.c.

References parserutils_charset_codec::decode, parserutils_charset_codec::handler, and PARSERUTILS_BADPARM.

Referenced by parserutils__filter_process_chunk().

parserutils_error parserutils_charset_codec_destroy ( parserutils_charset_codec codec)

Destroy a charset codec.

Parameters:
codecThe codec to destroy
Returns:
PARSERUTILS_OK on success, appropriate error otherwise

Definition at line 86 of file codec.c.

References parserutils_charset_codec::destroy, parserutils_charset_codec::handler, PARSERUTILS_BADPARM, and PARSERUTILS_OK.

Referenced by filter_set_encoding(), parserutils__filter_create(), and parserutils__filter_destroy().

parserutils_error parserutils_charset_codec_encode ( parserutils_charset_codec codec,
const uint8_t **  source,
size_t *  sourcelen,
uint8_t **  dest,
size_t *  destlen 
)

Encode a chunk of UCS-4 data into a codec's charset.

Parameters:
codecThe codec to use
sourcePointer to pointer to source data
sourcelenPointer to length (in bytes) of source data
destPointer to pointer to output buffer
destlenPointer to length (in bytes) of output buffer
Returns:
PARSERUTILS_OK on success, appropriate error otherwise.

source, sourcelen, dest and destlen will be updated appropriately on exit

Definition at line 136 of file codec.c.

References parserutils_charset_codec::encode, parserutils_charset_codec::handler, and PARSERUTILS_BADPARM.

Referenced by parserutils__filter_process_chunk().

parserutils_error parserutils_charset_codec_reset ( parserutils_charset_codec codec)

Clear a charset codec's encoding state.

Parameters:
codecThe codec to reset
Returns:
PARSERUTILS_OK on success, appropriate error otherwise

Definition at line 182 of file codec.c.

References parserutils_charset_codec::handler, PARSERUTILS_BADPARM, and parserutils_charset_codec::reset.

Referenced by parserutils__filter_reset().

parserutils_error parserutils_charset_codec_setopt ( parserutils_charset_codec codec,
parserutils_charset_codec_opttype  type,
parserutils_charset_codec_optparams params 
)

Configure a charset codec.

Parameters:
codecThe codec to configure
typeThe codec option type to configure
paramsOption-specific parameters
Returns:
PARSERUTILS_OK on success, appropriate error otherwise

Definition at line 107 of file codec.c.

References parserutils_charset_codec_optparams::error_mode, parserutils_charset_codec::errormode, parserutils_charset_codec_optparams::mode, PARSERUTILS_BADPARM, PARSERUTILS_CHARSET_CODEC_ERROR_MODE, and PARSERUTILS_OK.


Variable Documentation

Definition at line 587 of file codec_8859.c.

Definition at line 527 of file codec_ascii.c.

Definition at line 579 of file codec_ext8.c.

Definition at line 542 of file codec_utf16.c.

Definition at line 542 of file codec_utf8.c.