| 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 |
GI.Gst.Structs.Iterator
Contents
Description
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: |[language="C" -- 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 (ManagedPtr 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 ()
- getIteratorCookie :: MonadIO m => Iterator -> m Word32
- iterator_cookie :: AttrLabelProxy "cookie"
- setIteratorCookie :: MonadIO m => Iterator -> Word32 -> m ()
- clearIteratorCopy :: MonadIO m => Iterator -> m ()
- getIteratorCopy :: MonadIO m => Iterator -> m (Maybe IteratorCopyFunction)
- iterator_copy :: AttrLabelProxy "copy"
- setIteratorCopy :: MonadIO m => Iterator -> FunPtr C_IteratorCopyFunction -> m ()
- clearIteratorFree :: MonadIO m => Iterator -> m ()
- getIteratorFree :: MonadIO m => Iterator -> m (Maybe IteratorFreeFunction)
- iterator_free :: AttrLabelProxy "free"
- setIteratorFree :: MonadIO m => Iterator -> FunPtr C_IteratorFreeFunction -> m ()
- clearIteratorItem :: MonadIO m => Iterator -> m ()
- getIteratorItem :: MonadIO m => Iterator -> m (Maybe IteratorItemFunction)
- iterator_item :: AttrLabelProxy "item"
- setIteratorItem :: MonadIO m => Iterator -> FunPtr C_IteratorItemFunction -> m ()
- clearIteratorLock :: MonadIO m => Iterator -> m ()
- getIteratorLock :: MonadIO m => Iterator -> m (Maybe Mutex)
- iterator_lock :: AttrLabelProxy "lock"
- setIteratorLock :: MonadIO m => Iterator -> Ptr Mutex -> m ()
- getIteratorMasterCookie :: MonadIO m => Iterator -> m Word32
- iterator_masterCookie :: AttrLabelProxy "masterCookie"
- setIteratorMasterCookie :: MonadIO m => Iterator -> Word32 -> m ()
- clearIteratorNext :: MonadIO m => Iterator -> m ()
- getIteratorNext :: MonadIO m => Iterator -> m (Maybe IteratorNextFunction)
- iterator_next :: AttrLabelProxy "next"
- setIteratorNext :: MonadIO m => Iterator -> FunPtr C_IteratorNextFunction -> m ()
- clearIteratorPushed :: MonadIO m => Iterator -> m ()
- getIteratorPushed :: MonadIO m => Iterator -> m (Maybe Iterator)
- iterator_pushed :: AttrLabelProxy "pushed"
- setIteratorPushed :: MonadIO m => Iterator -> Ptr Iterator -> m ()
- clearIteratorResync :: MonadIO m => Iterator -> m ()
- getIteratorResync :: MonadIO m => Iterator -> m (Maybe IteratorResyncFunction)
- iterator_resync :: AttrLabelProxy "resync"
- setIteratorResync :: MonadIO m => Iterator -> FunPtr C_IteratorResyncFunction -> m ()
- getIteratorSize :: MonadIO m => Iterator -> m Word32
- iterator_size :: AttrLabelProxy "size"
- setIteratorSize :: MonadIO m => Iterator -> Word32 -> m ()
- getIteratorType :: MonadIO m => Iterator -> m GType
- iterator_type :: AttrLabelProxy "type"
- setIteratorType :: MonadIO m => Iterator -> GType -> m ()
Exported types
Instances
| BoxedObject Iterator Source # | |
| (~) AttrOpTag tag AttrSet => Constructible Iterator tag Source # | |
| ((~) * info (ResolveIteratorMethod t Iterator), MethodInfo * info Iterator p) => IsLabel t (Iterator -> p) Source # | |
| ((~) * info (ResolveIteratorMethod t Iterator), MethodInfo * info Iterator p) => IsLabelProxy t (Iterator -> p) Source # | |
| HasAttributeList * Iterator Source # | |
| ((~) * signature (m ()), MonadIO m) => MethodInfo * IteratorResyncMethodInfo Iterator signature Source # | |
| ((~) * signature (Iterator -> m ()), MonadIO m) => MethodInfo * IteratorPushMethodInfo Iterator signature Source # | |
| ((~) * signature (m (IteratorResult, GValue)), MonadIO m) => MethodInfo * IteratorNextMethodInfo Iterator signature Source # | |
| ((~) * signature (m ()), MonadIO m) => MethodInfo * IteratorFreeMethodInfo Iterator signature Source # | |
| ((~) * signature (IteratorForeachFunction -> m IteratorResult), MonadIO m) => MethodInfo * IteratorForeachMethodInfo Iterator signature Source # | |
| ((~) * signature (IteratorFoldFunction -> GValue -> m IteratorResult), MonadIO m) => MethodInfo * IteratorFoldMethodInfo Iterator signature Source # | |
| ((~) * signature (CompareFunc -> m (Bool, GValue)), MonadIO m) => MethodInfo * IteratorFindCustomMethodInfo Iterator signature Source # | |
| ((~) * signature (CompareFunc -> GValue -> m Iterator), MonadIO m) => MethodInfo * IteratorFilterMethodInfo Iterator signature Source # | |
| ((~) * signature (m Iterator), MonadIO m) => MethodInfo * IteratorCopyMethodInfo Iterator signature Source # | |
| type AttributeList Iterator Source # | |
Methods
copy
filter
findCustom
fold
data IteratorFoldMethodInfo Source #
Instances
| ((~) * signature (IteratorFoldFunction -> GValue -> m IteratorResult), MonadIO m) => MethodInfo * IteratorFoldMethodInfo Iterator signature Source # | |
iteratorFold :: MonadIO m => Iterator -> IteratorFoldFunction -> GValue -> m IteratorResult Source #
foreach
data IteratorForeachMethodInfo Source #
Instances
| ((~) * signature (IteratorForeachFunction -> m IteratorResult), MonadIO m) => MethodInfo * IteratorForeachMethodInfo Iterator signature Source # | |
iteratorForeach :: MonadIO m => Iterator -> IteratorForeachFunction -> m IteratorResult Source #
free
iteratorFree :: MonadIO m => Iterator -> m () Source #
newSingle
iteratorNewSingle :: MonadIO m => GType -> GValue -> m Iterator Source #
next
data IteratorNextMethodInfo Source #
Instances
| ((~) * signature (m (IteratorResult, GValue)), MonadIO m) => MethodInfo * IteratorNextMethodInfo Iterator signature Source # | |
iteratorNext :: MonadIO m => Iterator -> m (IteratorResult, GValue) Source #
push
resync
iteratorResync :: MonadIO m => Iterator -> m () Source #
Properties
cookie
iterator_cookie :: AttrLabelProxy "cookie" Source #
copy
clearIteratorCopy :: MonadIO m => Iterator -> m () Source #
getIteratorCopy :: MonadIO m => Iterator -> m (Maybe IteratorCopyFunction) Source #
iterator_copy :: AttrLabelProxy "copy" Source #
setIteratorCopy :: MonadIO m => Iterator -> FunPtr C_IteratorCopyFunction -> m () Source #
free
clearIteratorFree :: MonadIO m => Iterator -> m () Source #
getIteratorFree :: MonadIO m => Iterator -> m (Maybe IteratorFreeFunction) Source #
iterator_free :: AttrLabelProxy "free" Source #
setIteratorFree :: MonadIO m => Iterator -> FunPtr C_IteratorFreeFunction -> m () Source #
item
clearIteratorItem :: MonadIO m => Iterator -> m () Source #
getIteratorItem :: MonadIO m => Iterator -> m (Maybe IteratorItemFunction) Source #
iterator_item :: AttrLabelProxy "item" Source #
setIteratorItem :: MonadIO m => Iterator -> FunPtr C_IteratorItemFunction -> m () Source #
lock
clearIteratorLock :: MonadIO m => Iterator -> m () Source #
iterator_lock :: AttrLabelProxy "lock" Source #
masterCookie
iterator_masterCookie :: AttrLabelProxy "masterCookie" Source #
next
clearIteratorNext :: MonadIO m => Iterator -> m () Source #
getIteratorNext :: MonadIO m => Iterator -> m (Maybe IteratorNextFunction) Source #
iterator_next :: AttrLabelProxy "next" Source #
setIteratorNext :: MonadIO m => Iterator -> FunPtr C_IteratorNextFunction -> m () Source #
pushed
clearIteratorPushed :: MonadIO m => Iterator -> m () Source #
iterator_pushed :: AttrLabelProxy "pushed" Source #
resync
clearIteratorResync :: MonadIO m => Iterator -> m () Source #
getIteratorResync :: MonadIO m => Iterator -> m (Maybe IteratorResyncFunction) Source #
iterator_resync :: AttrLabelProxy "resync" Source #
setIteratorResync :: MonadIO m => Iterator -> FunPtr C_IteratorResyncFunction -> m () Source #
size
iterator_size :: AttrLabelProxy "size" Source #
type
getIteratorType :: MonadIO m => Iterator -> m GType Source #
iterator_type :: AttrLabelProxy "type" Source #
setIteratorType :: MonadIO m => Iterator -> GType -> m () Source #