## CamelStreamFilter CamelStreamFilter |

## Synopsis

    struct              CamelStreamFilter;
    CamelStreamFilter * camel_stream_filter_new_with_stream (CamelStream *stream);
    gint                camel_stream_filter_add             (CamelStreamFilter *stream,
                                                             CamelMimeFilter *filter);
    void                camel_stream_filter_remove          (CamelStreamFilter *stream,
                                                             gint id);

## Description

## Details

### struct CamelStreamFilter

    struct CamelStreamFilter {
    	CamelStream parent;

    	CamelStream *source;

    	struct _CamelStreamFilterPrivate *priv;
    };

### camel_stream_filter_new_with_stream ()

    CamelStreamFilter * camel_stream_filter_new_with_stream (CamelStream *stream);

`stream` : |
Returns : |

### camel_stream_filter_add ()

    gint                camel_stream_filter_add             (CamelStreamFilter *stream,
                                                             CamelMimeFilter *filter);

Add a new CamelMimeFilter to execute during the processing of this stream. Each filter added is processed after the previous one.

Note that a filter should only be added to a single stream at a time, otherwise unpredictable results may occur.

`stream` : | a CamelStreamFilter object
`filter` : | a CamelMimeFilter object
Returns : | a filter id for the added `filter`.

### camel_stream_filter_remove ()

    void                camel_stream_filter_remove          (CamelStreamFilter *stream,
                                                             gint id);

Remove a processing filter from the stream by id.

`stream` : | a CamelStreamFilter object
`id` : | Filter id, as returned from camel_stream_filter_add