## cr-enc-handler cr-enc-handler |

## Synopsis

                        CREncHandler;
    enum CRStatus       cr_enc_handler_convert_input        (CREncHandler *a_this,
                                                             const guchar *a_in,
                                                             gulong *a_in_len,
                                                             guchar **a_out,
                                                             gulong *a_out_len);
    CREncHandler *      cr_enc_handler_get_instance         (enum CREncoding a_enc);
    enum CRStatus       cr_enc_handler_resolve_enc_alias    (const guchar *a_alias_name,
                                                             enum CREncoding *a_enc);

## Description

## Details

### CREncHandler

    typedef struct _CREncHandler CREncHandler;

### cr_enc_handler_convert_input ()

    enum CRStatus       cr_enc_handler_convert_input        (CREncHandler *a_this,
                                                             const guchar *a_in,
                                                             gulong *a_in_len,
                                                             guchar **a_out,
                                                             gulong *a_out_len);

Converts a raw input buffer into an utf8 buffer.

`a_this` : | the current instance of CREncHandler.
`a_in` : | the input buffer to convert.
`a_in_len` : | in/out parameter. The len of the input buffer to convert. After return, contains the number of bytes actually consumed.
`a_out` : | output parameter. The converted output buffer. Must be freed by the buffer.
`a_out_len` : | output parameter. The length of the output buffer.
Returns : | CR_OK upon successfull completion, an error code otherwise.

### cr_enc_handler_get_instance ()

    CREncHandler *      cr_enc_handler_get_instance         (enum CREncoding a_enc);

Gets the instance of encoding handler. This function implements a singleton pattern.

`a_enc` : | the encoding of the Handler.
Returns : | the instance of CREncHandler.

### cr_enc_handler_resolve_enc_alias ()

    enum CRStatus       cr_enc_handler_resolve_enc_alias    (const guchar *a_alias_name,
                                                             enum CREncoding *a_enc);

Given an encoding name (called an alias name) the function returns the matching encoding type.

`a_alias_name` : | the encoding name.
`a_enc` : | output param. The returned encoding type or 0 if the alias is not supported.
Returns : | CR_OK upon successfull completion, an error code otherwise.