CamelMimeFilter

CamelMimeFilter

Synopsis

struct              CamelMimeFilter;
CamelMimeFilter*    camel_mime_filter_new               (void);
void                camel_mime_filter_filter            (CamelMimeFilter *filter,
                                                         char *in,
                                                         size_t len,
                                                         size_t prespace,
                                                         char **out,
                                                         size_t *outlen,
                                                         size_t *outprespace);
void                camel_mime_filter_complete          (CamelMimeFilter *filter,
                                                         char *in,
                                                         size_t len,
                                                         size_t prespace,
                                                         char **out,
                                                         size_t *outlen,
                                                         size_t *outprespace);
void                camel_mime_filter_reset             (CamelMimeFilter *filter);
void                camel_mime_filter_backup            (CamelMimeFilter *filter,
                                                         const char *data,
                                                         size_t length);
void                camel_mime_filter_set_size          (CamelMimeFilter *filter,
                                                         size_t size,
                                                         int keep);

Description

Details

struct CamelMimeFilter

struct CamelMimeFilter {
	CamelObject parent;

	struct _CamelMimeFilterPrivate *priv;

	char *outreal;		/* real malloc'd buffer */
	char *outbuf;		/* first 'writable' position allowed (outreal + outpre) */
	char *outptr;
	size_t outsize;
	size_t outpre;		/* prespace of this buffer */

	char *backbuf;
	size_t backsize;
	size_t backlen;		/* significant data there */
};


camel_mime_filter_new ()

CamelMimeFilter*    camel_mime_filter_new               (void);

Create a new CamelMimeFilter object.

Returns :

a new CamelMimeFilter

camel_mime_filter_filter ()

void                camel_mime_filter_filter            (CamelMimeFilter *filter,
                                                         char *in,
                                                         size_t len,
                                                         size_t prespace,
                                                         char **out,
                                                         size_t *outlen,
                                                         size_t *outprespace);

Passes the input buffer, in, through filter and generates an output buffer, out.

filter :

a CamelMimeFilter object

in :

input buffer

len :

length of in

prespace :

amount of prespace

out :

pointer to the output buffer (to be set)

outlen :

pointer to the length of the output buffer (to be set)

outprespace :

pointer to the output prespace length (to be set)

camel_mime_filter_complete ()

void                camel_mime_filter_complete          (CamelMimeFilter *filter,
                                                         char *in,
                                                         size_t len,
                                                         size_t prespace,
                                                         char **out,
                                                         size_t *outlen,
                                                         size_t *outprespace);

Passes the input buffer, in, through filter and generates an output buffer, out and makes sure that all data is flushed to the output buffer. This must be the last filtering call made, no further calls to camel_mime_filter_filter may be called on filter until filter has been reset using camel_mime_filter_reset.

filter :

a CamelMimeFilter object

in :

input buffer

len :

length of in

prespace :

amount of prespace

out :

pointer to the output buffer (to be set)

outlen :

pointer to the length of the output buffer (to be set)

outprespace :

pointer to the output prespace length (to be set)

camel_mime_filter_reset ()

void                camel_mime_filter_reset             (CamelMimeFilter *filter);

Resets the state on filter so that it may be used again.

filter :

a CamelMimeFilter object

camel_mime_filter_backup ()

void                camel_mime_filter_backup            (CamelMimeFilter *filter,
                                                         const char *data,
                                                         size_t length);

Saves data to be used as prespace input data to the next call to camel_mime_filter_filter or camel_mime_filter_complete.

Note: New calls replace old data.

filter :

a camelMimeFilter object

data :

data buffer to backup

length :

length of data

camel_mime_filter_set_size ()

void                camel_mime_filter_set_size          (CamelMimeFilter *filter,
                                                         size_t size,
                                                         int keep);

Ensure that filter has enough storage space to store size bytes for filter output.

filter :

a camelMimeFilter object

size :

requested amount of storage space

keep :

TRUE to keep existing buffered data or FALSE otherwise