## CamelMedium

CamelMedium

## Synopsis

    struct              CamelMedium;
                        CamelMediumHeader;
    void                camel_medium_add_header             (CamelMedium *medium,
                                                             const gchar *name,
                                                             gconstpointer value);
    void                camel_medium_set_header             (CamelMedium *medium,
                                                             const gchar *name,
                                                             gconstpointer value);
    void                camel_medium_remove_header          (CamelMedium *medium,
                                                             const gchar *name);
    gconstpointer       camel_medium_get_header             (CamelMedium *medium,
                                                             const gchar *name);
    GArray *            camel_medium_get_headers            (CamelMedium *medium);
    void                camel_medium_free_headers           (CamelMedium *medium,
                                                             GArray *headers);
    CamelDataWrapper *  camel_medium_get_content_object     (CamelMedium *medium);
    void                camel_medium_set_content_object     (CamelMedium *medium,
                                                             CamelDataWrapper *content);

## Description

## Details

### struct CamelMedium

    struct CamelMedium {
    	CamelDataWrapper parent_object;

    	/* The content of the medium, as opposed to our parent
    	 * CamelDataWrapper, which wraps both the headers and the
    	 * content.
    	 */
    	CamelDataWrapper *content;
    };

### CamelMediumHeader

    typedef struct {
    	const gchar *name;
    	const gchar *value;
    } CamelMediumHeader;

### camel_medium_add_header ()

    void                camel_medium_add_header             (CamelMedium *medium,
                                                             const gchar *name,
                                                             gconstpointer value);

Adds a header to a CamelMedium.

`medium` : | a CamelMedium object
`name` : | name of the header
`value` : | value of the header

### camel_medium_set_header ()

    void                camel_medium_set_header             (CamelMedium *medium,
                                                             const gchar *name,
                                                             gconstpointer value);

Sets the value of a header. Any other occurances of the header will be removed. Setting a `NULL` header can be used to remove the header also.

`medium` : | a CamelMedium object
`name` : | name of the header
`value` : | value of the header

### camel_medium_remove_header ()

    void                camel_medium_remove_header          (CamelMedium *medium,
                                                             const gchar *name);

Removes the named header from the medium. All occurances of the header are removed.

`medium` : | a CamelMedium
`name` : | the name of the header

### camel_medium_get_header ()

    gconstpointer       camel_medium_get_header             (CamelMedium *medium,
                                                             const gchar *name);

Gets the value of the named header in the medium, or `NULL` if it is unset. The caller should not modify or free the data.

If the header occurs more than once, only retrieve the first instance of the header. For multi-occuring headers, use :`get_headers()`.

`medium` : | a CamelMedium object
`name` : | the name of the header
Returns : | the value of the named header, or `NULL`

### camel_medium_get_headers ()

    GArray *            camel_medium_get_headers            (CamelMedium *medium);

Gets an array of all header name/value pairs (as CamelMediumHeader structures). The values will be decoded to UTF-8 for any headers that are recognized by Camel. The caller should not modify the returned data.

`medium` : | a CamelMedium object
Returns : | the array of headers, which must be freed with camel_medium_free_headers.

### camel_medium_free_headers ()

    void                camel_medium_free_headers           (CamelMedium *medium,
                                                             GArray *headers);

Frees `headers`.

`medium` : | a CamelMedium object
`headers` : | an array of headers returned from camel_medium_get_headers

### camel_medium_get_content_object ()

    CamelDataWrapper *  camel_medium_get_content_object     (CamelMedium *medium);

Gets a data wrapper that represents the content of the medium, without its headers.

`medium` : | a CamelMedium object
Returns : | a CamelDataWrapper containing `medium`'s content. Can return NULL.

### camel_medium_set_content_object ()

    void                camel_medium_set_content_object     (CamelMedium *medium,
                                                             CamelDataWrapper *content);

Sets the content of `medium` to be `content`.

`medium` : | a CamelMedium object
`content` : | a CamelDataWrapper object