Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
A GstIterator is used to retrieve multiple objects from another object in a threadsafe way.
Various GStreamer objects provide access to their internal structures using an iterator.
Note that if calling a GstIterator function results in your code receiving a refcounted object (with, say, g_value_get_object()), the refcount for that object will not be increased. Your code is responsible for taking a reference if it wants to continue using it later.
The basic use pattern of an iterator is as follows: |[ GstIterator *it = _get_iterator(object); GValue item = G_VALUE_INIT; done = FALSE; while (!done) { switch (gst_iterator_next (it, &item)) { case GST_ITERATOR_OK: ...getusechange item here... g_value_reset (&item); break; case GST_ITERATOR_RESYNC: ...rollback changes to items... gst_iterator_resync (it); break; case GST_ITERATOR_ERROR: ...wrong parameters were given... done = TRUE; break; case GST_ITERATOR_DONE: done = TRUE; break; } } g_value_unset (&item); gst_iterator_free (it); ]|
- newtype Iterator = Iterator (ForeignPtr Iterator)
- newZeroIterator :: MonadIO m => m Iterator
- noIterator :: Maybe Iterator
- data IteratorCopyMethodInfo
- iteratorCopy :: MonadIO m => Iterator -> m Iterator
- data IteratorFilterMethodInfo
- iteratorFilter :: MonadIO m => Iterator -> CompareFunc -> GValue -> m Iterator
- data IteratorFindCustomMethodInfo
- iteratorFindCustom :: MonadIO m => Iterator -> CompareFunc -> m (Bool, GValue)
- data IteratorFoldMethodInfo
- iteratorFold :: MonadIO m => Iterator -> IteratorFoldFunction -> GValue -> m IteratorResult
- data IteratorForeachMethodInfo
- iteratorForeach :: MonadIO m => Iterator -> IteratorForeachFunction -> m IteratorResult
- data IteratorFreeMethodInfo
- iteratorFree :: MonadIO m => Iterator -> m ()
- iteratorNewSingle :: MonadIO m => GType -> GValue -> m Iterator
- data IteratorNextMethodInfo
- iteratorNext :: MonadIO m => Iterator -> m (IteratorResult, GValue)
- data IteratorPushMethodInfo
- iteratorPush :: MonadIO m => Iterator -> Iterator -> m ()
- data IteratorResyncMethodInfo
- iteratorResync :: MonadIO m => Iterator -> m ()
- iteratorReadCookie :: Iterator -> IO Word32
- iteratorReadLock :: Iterator -> IO Mutex
- iteratorReadMasterCookie :: Iterator -> IO Word32
- iteratorReadPushed :: Iterator -> IO Iterator
- iteratorReadSize :: Iterator -> IO Word32
- iteratorReadType :: Iterator -> IO GType
Exported types
newZeroIterator :: MonadIO m => m Iterator Source
Construct a Iterator
struct initialized to zero.
Methods
iteratorCopy
data IteratorCopyMethodInfo Source
((~) (TYPE Lifted) signature (m Iterator), MonadIO m) => MethodInfo (TYPE Lifted) IteratorCopyMethodInfo Iterator signature Source | |
iteratorCopy :: MonadIO m => Iterator -> m Iterator Source
iteratorFilter
iteratorFindCustom
iteratorFold
data IteratorFoldMethodInfo Source
((~) (TYPE Lifted) signature (IteratorFoldFunction -> GValue -> m IteratorResult), MonadIO m) => MethodInfo (TYPE Lifted) IteratorFoldMethodInfo Iterator signature Source | |
iteratorFold :: MonadIO m => Iterator -> IteratorFoldFunction -> GValue -> m IteratorResult Source
iteratorForeach
data IteratorForeachMethodInfo Source
((~) (TYPE Lifted) signature (IteratorForeachFunction -> m IteratorResult), MonadIO m) => MethodInfo (TYPE Lifted) IteratorForeachMethodInfo Iterator signature Source | |
iteratorForeach :: MonadIO m => Iterator -> IteratorForeachFunction -> m IteratorResult Source
iteratorFree
data IteratorFreeMethodInfo Source
((~) (TYPE Lifted) signature (m ()), MonadIO m) => MethodInfo (TYPE Lifted) IteratorFreeMethodInfo Iterator signature Source | |
iteratorFree :: MonadIO m => Iterator -> m () Source
iteratorNewSingle
iteratorNext
data IteratorNextMethodInfo Source
((~) (TYPE Lifted) signature (m (IteratorResult, GValue)), MonadIO m) => MethodInfo (TYPE Lifted) IteratorNextMethodInfo Iterator signature Source | |
iteratorNext :: MonadIO m => Iterator -> m (IteratorResult, GValue) Source
iteratorPush
data IteratorPushMethodInfo Source
((~) (TYPE Lifted) signature (Iterator -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) IteratorPushMethodInfo Iterator signature Source | |
iteratorPush :: MonadIO m => Iterator -> Iterator -> m () Source
iteratorResync
data IteratorResyncMethodInfo Source
((~) (TYPE Lifted) signature (m ()), MonadIO m) => MethodInfo (TYPE Lifted) IteratorResyncMethodInfo Iterator signature Source | |
iteratorResync :: MonadIO m => Iterator -> m () Source
Properties
Cookie
iteratorReadCookie :: Iterator -> IO Word32 Source
Lock
iteratorReadLock :: Iterator -> IO Mutex Source
MasterCookie
Pushed
Size
iteratorReadSize :: Iterator -> IO Word32 Source
Type
iteratorReadType :: Iterator -> IO GType Source