CamelMimeFilterYenc

CamelMimeFilterYenc

Functions

Types and Values

Object Hierarchy

    GObject
    ╰── CamelMimeFilter
        ╰── CamelMimeFilterYenc

Description

Functions

CAMEL_MIME_YENCODE_CRC_FINAL()

#define CAMEL_MIME_YENCODE_CRC_FINAL(crc) (~crc)

camel_mime_filter_yenc_new ()

CamelMimeFilter *
camel_mime_filter_yenc_new (CamelMimeFilterYencDirection direction);

Create a new CamelMimeFilterYenc filter object.

Parameters

direction

encode direction

 

Returns

a new CamelMimeFilterYenc object


camel_mime_filter_yenc_set_state ()

void
camel_mime_filter_yenc_set_state (CamelMimeFilterYenc *yenc,
                                  gint state);

Sets the current state of the yencoder/ydecoder

Parameters

yenc

a CamelMimeFilterYenc object

 

state

encode/decode state

 

camel_mime_filter_yenc_set_crc ()

void
camel_mime_filter_yenc_set_crc (CamelMimeFilterYenc *yenc,
                                guint32 crc);

Sets the current crc32 value on the yEnc filter yenc to crc .

Parameters

yenc

a CamelMimeFilterYenc object

 

crc

crc32 value

 

camel_mime_filter_yenc_get_pcrc ()

guint32
camel_mime_filter_yenc_get_pcrc (CamelMimeFilterYenc *yenc);

Get the computed part crc or (guint32) -1 on fail.

Parameters

yenc

a CamelMimeFilterYenc object

 

Returns

the computed part crc or (guint32) -1 on fail.


camel_mime_filter_yenc_get_crc ()

guint32
camel_mime_filter_yenc_get_crc (CamelMimeFilterYenc *yenc);

Get the computed crc or (guint32) -1 on fail.

Parameters

yenc

a CamelMimeFilterYenc object

 

Returns

the computed crc or (guint32) -1 on fail.


camel_ydecode_step ()

gsize
camel_ydecode_step (const guchar *in,
                    gsize inlen,
                    guchar *out,
                    gint *state,
                    guint32 *pcrc,
                    guint32 *crc);

Performs a 'decode step' on a chunk of yEncoded data of length inlen pointed to by in and writes to out . Assumes the =ybegin and =ypart lines have already been stripped off.

To get the crc32 value of the part, use CAMEL_MIME_YENCODE_CRC_FINAL (pcrc ). If there are more parts, you should reuse crc without re-initializing. Once all parts have been decoded, you may get the combined crc32 value of all the parts using CAMEL_MIME_YENCODE_CRC_FINAL (crc ).

Parameters

in

input buffer.

[type guchar][array length=inlen]

inlen

input buffer length

 

out

output buffer.

[out][array]

state

ydecode state.

[out]

pcrc

part crc state.

[out]

crc

crc state.

[out]

Returns

the number of bytes decoded


camel_yencode_step ()

gsize
camel_yencode_step (const guchar *in,
                    gsize inlen,
                    guchar *out,
                    gint *state,
                    guint32 *pcrc,
                    guint32 *crc);

Performs an yEncode 'encode step' on a chunk of raw data of length inlen pointed to by in and writes to out .

state should be initialized to CAMEL_MIME_YENCODE_STATE_INIT before beginning making the first call to this function. Subsequent calls should reuse state .

Along the same lines, pcrc and crc should be initialized to CAMEL_MIME_YENCODE_CRC_INIT before using.

Parameters

in

input buffer.

[type guchar][array length=inlen]

inlen

input buffer length

 

out

output buffer.

[array][out]

state

yencode state.

[out]

pcrc

part crc state.

[out]

crc

crc state.

[out]

Returns

the number of bytes encoded


camel_yencode_close ()

gsize
camel_yencode_close (const guchar *in,
                     gsize inlen,
                     guchar *out,
                     gint *state,
                     guint32 *pcrc,
                     guint32 *crc);

Call this function when finished encoding data with camel_yencode_step() to flush off the remaining state.

CAMEL_MIME_YENCODE_CRC_FINAL (pcrc ) will give you the crc32 of the encoded "part". If there are more "parts" to encode, you should re-use crc when encoding the next "parts" and then use CAMEL_MIME_YENCODE_CRC_FINAL (crc ) to get the combined crc32 value of all the parts.

Parameters

in

input buffer.

[type guchar][array length=inlen]

inlen

input buffer length

 

out

output buffer.

[array][out]

state

yencode state.

[out]

pcrc

part crc state.

[out]

crc

crc state.

[out]

Returns

the number of bytes encoded.

Types and Values

CAMEL_MIME_YDECODE_STATE_INIT

#define CAMEL_MIME_YDECODE_STATE_INIT     (0)

CAMEL_MIME_YENCODE_STATE_INIT

#define CAMEL_MIME_YENCODE_STATE_INIT     (0)

CAMEL_MIME_YDECODE_STATE_EOLN

#define CAMEL_MIME_YDECODE_STATE_EOLN     (1 << 8)

CAMEL_MIME_YDECODE_STATE_ESCAPE

#define CAMEL_MIME_YDECODE_STATE_ESCAPE   (1 << 9)

CAMEL_MIME_YDECODE_STATE_BEGIN

#define CAMEL_MIME_YDECODE_STATE_BEGIN    (1 << 12)

CAMEL_MIME_YDECODE_STATE_PART

#define CAMEL_MIME_YDECODE_STATE_PART     (1 << 13)

CAMEL_MIME_YDECODE_STATE_DECODE

#define CAMEL_MIME_YDECODE_STATE_DECODE   (1 << 14)

CAMEL_MIME_YDECODE_STATE_END

#define CAMEL_MIME_YDECODE_STATE_END      (1 << 15)

CAMEL_MIME_YENCODE_CRC_INIT

#define CAMEL_MIME_YENCODE_CRC_INIT       (~0)