![]() |
![]() |
![]() |
Camel Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy |
struct CamelMimeFilterYenc; enum CamelMimeFilterYencDirection; #define CAMEL_MIME_YDECODE_STATE_INIT #define CAMEL_MIME_YENCODE_STATE_INIT #define CAMEL_MIME_YDECODE_STATE_EOLN #define CAMEL_MIME_YDECODE_STATE_ESCAPE #define CAMEL_MIME_YDECODE_STATE_BEGIN #define CAMEL_MIME_YDECODE_STATE_PART #define CAMEL_MIME_YDECODE_STATE_DECODE #define CAMEL_MIME_YDECODE_STATE_END #define CAMEL_MIME_YENCODE_CRC_INIT #define CAMEL_MIME_YENCODE_CRC_FINAL (crc) CamelMimeFilter * camel_mime_filter_yenc_new (CamelMimeFilterYencDirection direction
); void camel_mime_filter_yenc_set_state (CamelMimeFilterYenc *yenc
,gint state
); void camel_mime_filter_yenc_set_crc (CamelMimeFilterYenc *yenc
,guint32 crc
); guint32 camel_mime_filter_yenc_get_pcrc (CamelMimeFilterYenc *yenc
); guint32 camel_mime_filter_yenc_get_crc (CamelMimeFilterYenc *yenc
); gsize camel_ydecode_step (const guchar *in
,gsize inlen
,guchar *out
,gint *state
,guint32 *pcrc
,guint32 *crc
); gsize camel_yencode_step (const guchar *in
,gsize inlen
,guchar *out
,gint *state
,guint32 *pcrc
,guint32 *crc
); gsize camel_yencode_close (const guchar *in
,gsize inlen
,guchar *out
,gint *state
,guint32 *pcrc
,guint32 *crc
);
typedef enum { CAMEL_MIME_FILTER_YENC_DIRECTION_ENCODE, CAMEL_MIME_FILTER_YENC_DIRECTION_DECODE } CamelMimeFilterYencDirection;
CamelMimeFilter * camel_mime_filter_yenc_new (CamelMimeFilterYencDirection direction
);
Create a new CamelMimeFilterYenc filter object.
|
encode direction |
Returns : |
a new CamelMimeFilterYenc object |
void camel_mime_filter_yenc_set_state (CamelMimeFilterYenc *yenc
,gint state
);
Sets the current state of the yencoder/ydecoder
|
a CamelMimeFilterYenc object |
|
encode/decode state |
void camel_mime_filter_yenc_set_crc (CamelMimeFilterYenc *yenc
,guint32 crc
);
Sets the current crc32 value on the yEnc filter yenc
to crc
.
|
a CamelMimeFilterYenc object |
|
crc32 value |
guint32 camel_mime_filter_yenc_get_pcrc (CamelMimeFilterYenc *yenc
);
Get the computed part crc or (guint32) -1
on fail.
|
a CamelMimeFilterYenc object |
Returns : |
the computed part crc or (guint32) -1 on fail. |
guint32 camel_mime_filter_yenc_get_crc (CamelMimeFilterYenc *yenc
);
Get the computed crc or (guint32) -1 on fail.
|
a CamelMimeFiletrYenc object |
Returns : |
the computed crc or (guint32) -1 on fail. |
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
).
|
input buffer |
|
input buffer length |
|
output buffer |
|
ydecode state |
|
part crc state |
|
crc state |
Returns : |
the number of bytes decoded |
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.
|
input buffer |
|
input buffer length |
|
output buffer |
|
yencode state |
|
part crc state |
|
crc state |
Returns : |
the number of bytes encoded |
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.
|
input buffer |
|
input buffer length |
|
output buffer |
|
yencode state |
|
part crc state |
|
crc state |
Returns : |
the number of bytes encoded. |