## CamelStreamFilter CamelStreamFilter |

## Synopsis

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

## Object Hierarchy

      GObject
       +----CamelObject
             +----CamelStream
                   +----CamelStreamFilter

## Implemented Interfaces

CamelStreamFilter implements GSeekable.

## Description

## Details

### struct CamelStreamFilter

    struct CamelStreamFilter;

### camel_stream_filter_new ()

    CamelStream *       camel_stream_filter_new             (CamelStream *source);

Create a new CamelStreamFilter object.

Returns : | a new CamelStreamFilter object.

Since 2.32

### camel_stream_filter_get_source ()

    CamelStream *       camel_stream_filter_get_source      (CamelStreamFilter *stream);

`stream` : | a CamelStreamFilter

Since 2.32

### 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()`