GMimePartIter

3 GMIME Library

GMimePartIter

MIME part iterators

# Synopsis

                        GMimePartIter;
    GMimePartIter *     g_mime_part_iter_new                (GMimeObject *toplevel);
    void                g_mime_part_iter_free               (GMimePartIter *iter);
    void                g_mime_part_iter_reset              (GMimePartIter *iter);
    gboolean            g_mime_part_iter_jump_to            (GMimePartIter *iter,
                                                             const char *path);
    gboolean            g_mime_part_iter_is_valid           (GMimePartIter *iter);
    gboolean            g_mime_part_iter_next               (GMimePartIter *iter);
    gboolean            g_mime_part_iter_prev               (GMimePartIter *iter);
    GMimeObject *       g_mime_part_iter_get_toplevel       (GMimePartIter *iter);
    GMimeObject *       g_mime_part_iter_get_current        (GMimePartIter *iter);
    GMimeObject *       g_mime_part_iter_get_parent         (GMimePartIter *iter);
    char *              g_mime_part_iter_get_path           (GMimePartIter *iter);
    gboolean            g_mime_part_iter_replace            (GMimePartIter *iter,
                                                             GMimeObject *replacement);
    gboolean            g_mime_part_iter_remove             (GMimePartIter *iter);

## Description

`GMimePartIter` is an iterator for traversing a `GMimeObject` tree in Depth-First order.

## Details

### GMimePartIter

    typedef struct _GMimePartIter GMimePartIter;

A MIME part iterator.

### g_mime_part_iter_new ()

    GMimePartIter *     g_mime_part_iter_new                (GMimeObject *toplevel);

Creates a new `GMimePartIter` for iterating over `toplevel`'s subparts.

`toplevel` :

- a `GMimeObject` to use as the toplevel

Returns :

- a newly allocated `GMimePartIter` which should be freed using `g_mime_part_iter_free()` when finished with it.

### g_mime_part_iter_free ()

    void                g_mime_part_iter_free               (GMimePartIter *iter);

Frees the memory allocated by `g_mime_part_iter_new()`.

`iter` :

- a `GMimePartIter`

### g_mime_part_iter_reset ()

    void                g_mime_part_iter_reset              (GMimePartIter *iter);

Resets the state of `iter` to its initial state.

`iter` :

- a `GMimePartIter`

### g_mime_part_iter_jump_to ()

    gboolean            g_mime_part_iter_jump_to            (GMimePartIter *iter,
                                                             const char *path);

Updates the state of `iter` to point to the `GMimeObject` specified by `path`.

`iter` :

- a `GMimePartIter`

`path` :

- a string representing the path to jump to

Returns :

- `TRUE` if the `GMimeObject` specified by `path` exists or `FALSE` otherwise.

### g_mime_part_iter_is_valid ()

    gboolean            g_mime_part_iter_is_valid           (GMimePartIter *iter);

Checks that the current state of `iter` is valid.

`iter` :

- a `GMimePartIter`

Returns :

- `TRUE` if `iter` is valid or `FALSE` otherwise.

### g_mime_part_iter_next ()

    gboolean            g_mime_part_iter_next               (GMimePartIter *iter);

Advances to the next part in the MIME structure used to initialize `iter`.

`iter` :

- a `GMimePartIter`

Returns :

- `TRUE` if successful or `FALSE` otherwise.

### g_mime_part_iter_prev ()

    gboolean            g_mime_part_iter_prev               (GMimePartIter *iter);

Rewinds to the previous part in the MIME structure used to initialize `iter`.

`iter` :

- a `GMimePartIter`

Returns :

- `TRUE` if successful or `FALSE` otherwise.

### g_mime_part_iter_get_toplevel ()

    GMimeObject *       g_mime_part_iter_get_toplevel       (GMimePartIter *iter);

Gets the toplevel `GMimeObject` used to initialize `iter`.

`iter` :

- a `GMimePartIter`

Returns :

- the toplevel `GMimeObject`.

### g_mime_part_iter_get_current ()

    GMimeObject *       g_mime_part_iter_get_current        (GMimePartIter *iter);

Gets the `GMimeObject` at the current `GMimePartIter` position.

`iter` :

- a `GMimePartIter`

Returns :

- the current `GMimeObject` or `NULL` if the state of `iter` is invalid.

### g_mime_part_iter_get_parent ()

    GMimeObject *       g_mime_part_iter_get_parent         (GMimePartIter *iter);

Gets the parent of the `GMimeObject` at the current `GMimePartIter` position.

`iter` :

- a `GMimePartIter`

Returns :

- the parent `GMimeObject` or `NULL` if the state of `iter` is invalid.

### g_mime_part_iter_get_path ()

    char *              g_mime_part_iter_get_path           (GMimePartIter *iter);

Gets the path of the current `GMimeObject` in the MIME structure used to initialize `iter`.

`iter` :

- a `GMimePartIter`

Returns :

- a newly allocated string representation of the path to the `GMimeObject` at the current `GMimePartIter` position.

### g_mime_part_iter_replace ()

    gboolean            g_mime_part_iter_replace            (GMimePartIter *iter,
                                                             GMimeObject *replacement);

Replaces the `GMimeObject` at the current position with `replacement`.

`iter` :

- a `GMimePartIter`

`replacement` :

- a `GMimeObject`

Returns :

- `TRUE` if the part at the current position was replaced or `FALSE` otherwise.

### g_mime_part_iter_remove ()

    gboolean            g_mime_part_iter_remove             (GMimePartIter *iter);

Removes the `GMimeObject` at the current position from its parent. If successful, `iter` is advanced to the next position (since the current position will become invalid).

`iter` :

- a `GMimePartIter`

Returns :

- `TRUE` if the part at the current position was removed or `FALSE` otherwise.

## See Also

`GMimeObject`