|  |  |  | GMime 2.4 Reference Manual |  | 
|---|---|---|---|---|
                    GMimeFilterYenc;
GMimeFilter*        g_mime_filter_yenc_new              (gboolean encode);
void                g_mime_filter_yenc_set_state        (GMimeFilterYenc *yenc,
                                                         int state);
void                g_mime_filter_yenc_set_crc          (GMimeFilterYenc *yenc,
                                                         guint32 crc);
guint32             g_mime_filter_yenc_get_crc          (GMimeFilterYenc *yenc);
guint32             g_mime_filter_yenc_get_pcrc         (GMimeFilterYenc *yenc);
#define             GMIME_YENCODE_CRC_INIT
#define             GMIME_YENCODE_CRC_FINAL             (crc)
#define             GMIME_YENCODE_STATE_INIT
#define             GMIME_YDECODE_STATE_INIT
#define             GMIME_YDECODE_STATE_EOLN
#define             GMIME_YDECODE_STATE_ESCAPE
#define             GMIME_YDECODE_STATE_END
#define             GMIME_YDECODE_STATE_BEGIN
#define             GMIME_YDECODE_STATE_DECODE
#define             GMIME_YDECODE_STATE_PART
size_t              g_mime_ydecode_step                 (unsigned char *inbuf,
                                                         size_t inlen,
                                                         unsigned char *outbuf,
                                                         int *state,
                                                         guint32 *pcrc,
                                                         guint32 *crc);
size_t              g_mime_yencode_step                 (unsigned char *inbuf,
                                                         size_t inlen,
                                                         unsigned char *outbuf,
                                                         int *state,
                                                         guint32 *pcrc,
                                                         guint32 *crc);
size_t              g_mime_yencode_close                (unsigned char *inbuf,
                                                         size_t inlen,
                                                         unsigned char *outbuf,
                                                         int *state,
                                                         guint32 *pcrc,
                                                         guint32 *crc);
typedef struct _GMimeFilterYenc GMimeFilterYenc;
A filter for yEncoding or yDecoding a stream.
GMimeFilter* g_mime_filter_yenc_new (gboolean encode);
Creates a new yEnc filter.
| 
 | encode vs decode | 
| Returns : | a new yEnc filter. | 
void g_mime_filter_yenc_set_state (GMimeFilterYenc *yenc, int state);
Sets the current state of the yencoder/ydecoder
| 
 | yEnc filter | 
| 
 | encode/decode state | 
void g_mime_filter_yenc_set_crc (GMimeFilterYenc *yenc, guint32 crc);
Sets the current crc32 value on the yEnc filter yenc to crc.
| 
 | yEnc filter | 
| 
 | crc32 | 
guint32 g_mime_filter_yenc_get_crc (GMimeFilterYenc *yenc);
Get the computed crc or (guint32) -1 on fail.
| 
 | yEnc filter | 
| Returns : | the computed crc or (guint32) -1 on fail. | 
guint32 g_mime_filter_yenc_get_pcrc (GMimeFilterYenc *yenc);
Get the computed part crc or (guint32) -1 on fail.
| 
 | yEnc filter | 
| Returns : | the computed part crc or (guint32) -1 on fail. | 
#define GMIME_YENCODE_CRC_INIT (~0)
Initial state for the crc and pcrc state variables.
#define GMIME_YENCODE_CRC_FINAL(crc) (~crc)
Gets the final crc value from crc.
| 
 | crc or pcrc state variable | 
#define GMIME_YENCODE_STATE_INIT (0)
Initial state for the g_mime_ydecode_step() function.
#define GMIME_YDECODE_STATE_INIT (0)
Initial state for the g_mime_ydecode_step() function.
#define GMIME_YDECODE_STATE_EOLN (1 << 8)
State bit that denotes the yEnc filter has reached an end-of-line.
This state is for internal use only.
#define GMIME_YDECODE_STATE_ESCAPE (1 << 9)
State bit that denotes the yEnc filter has reached an escape sequence.
This state is for internal use only.
#define GMIME_YDECODE_STATE_END (1 << 15)
State bit that denoates that g_mime_ydecode_step() has finished
decoding.
#define GMIME_YDECODE_STATE_BEGIN (1 << 12)
State bit that denotes the yEnc filter has found the =ybegin line.
#define GMIME_YDECODE_STATE_DECODE (1 << 14)
State bit that denotes yEnc filter has begun decoding the actual yencoded content and will continue to do so until an =yend line is found (or until there is nothing left to decode).
#define GMIME_YDECODE_STATE_PART (1 << 13)
State bit that denotes the yEnc filter has found the =ypart line. (Note: not all yencoded blocks have one)
size_t              g_mime_ydecode_step                 (unsigned char *inbuf,
                                                         size_t inlen,
                                                         unsigned char *outbuf,
                                                         int *state,
                                                         guint32 *pcrc,
                                                         guint32 *crc);
Performs a 'decode step' on a chunk of yEncoded data of length
inlen pointed to by inbuf and writes to outbuf. Assumes the =ybegin
and =ypart lines have already been stripped off.
To get the crc32 value of the part, use GMIME_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 GMIME_YENCODE_CRC_FINAL
(crc).
| 
 | input buffer | 
| 
 | input buffer length | 
| 
 | output buffer | 
| 
 | ydecode state | 
| 
 | part crc state | 
| 
 | crc state | 
| Returns : | the number of bytes decoded. | 
size_t              g_mime_yencode_step                 (unsigned char *inbuf,
                                                         size_t inlen,
                                                         unsigned char *outbuf,
                                                         int *state,
                                                         guint32 *pcrc,
                                                         guint32 *crc);
Performs an yEncode 'encode step' on a chunk of raw data of length
inlen pointed to by inbuf and writes to outbuf.
state should be initialized to GMIME_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
GMIME_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. | 
size_t              g_mime_yencode_close                (unsigned char *inbuf,
                                                         size_t inlen,
                                                         unsigned char *outbuf,
                                                         int *state,
                                                         guint32 *pcrc,
                                                         guint32 *crc);
Call this function when finished encoding data with
g_mime_yencode_step() to flush off the remaining state.
GMIME_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
GMIME_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. |