## GstIterator GstIterator |

## Functions

void | (*GstIteratorCopyFunction) ()
GstIteratorResult | (*GstIteratorNextFunction) ()
GstIteratorItem | (*GstIteratorItemFunction) ()
void | (*GstIteratorResyncFunction) ()
void | (*GstIteratorFreeFunction) ()
void | (*GstIteratorForeachFunction) ()
gboolean | (*GstIteratorFoldFunction) ()
#define | GST_ITERATOR()
#define | GST_ITERATOR_LOCK()
#define | GST_ITERATOR_COOKIE()
#define | GST_ITERATOR_ORIG_COOKIE()
GstIterator * | gst_iterator_new ()
GstIterator * | gst_iterator_new_list ()
GstIterator * | gst_iterator_new_single ()
GstIterator * | gst_iterator_copy ()
void | gst_iterator_free ()
GstIteratorResult | gst_iterator_next ()
void | gst_iterator_resync ()
void | gst_iterator_push ()
GstIterator * | gst_iterator_filter ()
GstIteratorResult | gst_iterator_fold ()
GstIteratorResult | gst_iterator_foreach ()
gboolean | gst_iterator_find_custom ()

## Types and Values

struct | GstIterator
enum | GstIteratorItem
enum | GstIteratorResult

## Includes

    #include <gst/gst.h>

## Description

## Functions

### GstIteratorCopyFunction ()

    void
    (*GstIteratorCopyFunction) (const GstIterator *it,
                                GstIterator *copy);

### GstIteratorNextFunction ()

    GstIteratorResult
    (*GstIteratorNextFunction) (GstIterator *it,
                                GValue *result);

### GstIteratorItemFunction ()

    GstIteratorItem
    (*GstIteratorItemFunction) (GstIterator *it,
                                const GValue *item);

### GstIteratorResyncFunction ()

    void
    (*GstIteratorResyncFunction) (GstIterator *it);

### GstIteratorFreeFunction ()

    void
    (*GstIteratorFreeFunction) (GstIterator *it);

### GstIteratorForeachFunction ()

    void
    (*GstIteratorForeachFunction) (const GValue *item,
                                   gpointer user_data);

### GstIteratorFoldFunction ()

    gboolean
    (*GstIteratorFoldFunction) (const GValue *item,
                                GValue *ret,
                                gpointer user_data);

### GST_ITERATOR()

    #define GST_ITERATOR(it)                ((GstIterator*)(it))

### GST_ITERATOR_LOCK()

    #define GST_ITERATOR_LOCK(it)           (GST_ITERATOR(it)->lock)

### GST_ITERATOR_COOKIE()

    #define GST_ITERATOR_COOKIE(it)         (GST_ITERATOR(it)->cookie)

### GST_ITERATOR_ORIG_COOKIE()

    #define GST_ITERATOR_ORIG_COOKIE(it)    (GST_ITERATOR(it)->master_cookie)

### gst_iterator_new ()

    GstIterator *
    gst_iterator_new (guint size,
                      GType type,
                      GMutex *lock,
                      guint32 *master_cookie,
                      GstIteratorCopyFunction copy,
                      GstIteratorNextFunction next,
                      GstIteratorItemFunction item,
                      GstIteratorResyncFunction resync,
                      GstIteratorFreeFunction free);

### gst_iterator_new_list ()

    GstIterator *
    gst_iterator_new_list (GType type,
                           GMutex *lock,
                           guint32 *master_cookie,
                           GList **list,
                           GObject *owner,
                           GstIteratorItemFunction item);

### gst_iterator_new_single ()

    GstIterator *
    gst_iterator_new_single (GType type,
                             const GValue *object);

### gst_iterator_copy ()

    GstIterator *
    gst_iterator_copy (const GstIterator *it);

### gst_iterator_free ()

    void
    gst_iterator_free (GstIterator *it);

### gst_iterator_next ()

    GstIteratorResult
    gst_iterator_next (GstIterator *it,
                       GValue *elem);

### gst_iterator_resync ()

    void
    gst_iterator_resync (GstIterator *it);

### gst_iterator_push ()

    void
    gst_iterator_push (GstIterator *it,
                       GstIterator *other);

### gst_iterator_filter ()

    GstIterator *
    gst_iterator_filter (GstIterator *it,
                         GCompareFunc func,
                         const GValue *user_data);

### gst_iterator_fold ()

    GstIteratorResult
    gst_iterator_fold (GstIterator *it,
                       GstIteratorFoldFunction func,
                       GValue *ret,
                       gpointer user_data);

### gst_iterator_foreach ()

    GstIteratorResult
    gst_iterator_foreach (GstIterator *it,
                          GstIteratorForeachFunction func,
                          gpointer user_data);

### gst_iterator_find_custom ()

    gboolean
    gst_iterator_find_custom (GstIterator *it,
                              GCompareFunc func,
                              GValue *elem,
                              gpointer user_data);

## Types and Values

### struct GstIterator

    struct GstIterator {
    };

### enum GstIteratorItem

#### Members

GST_ITERATOR_ITEM_SKIP |  |
GST_ITERATOR_ITEM_PASS |  |
GST_ITERATOR_ITEM_END |  |

### enum GstIteratorResult

#### Members

GST_ITERATOR_DONE |  |
GST_ITERATOR_OK |  |
GST_ITERATOR_RESYNC |  |
GST_ITERATOR_ERROR |  |