| 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.MiniObject
Contents
Description
#GstMiniObject is a simple structure that can be used to implement refcounted types.
Subclasses will include #GstMiniObject as the first member in their structure and then call gst_mini_object_init() to initialize the #GstMiniObject fields.
gst_mini_object_ref() and gst_mini_object_unref() increment and decrement the refcount respectively. When the refcount of a mini-object reaches 0, the dispose function is called first and when this returns %TRUE, the free function of the miniobject is called.
A copy can be made with gst_mini_object_copy().
gst_mini_object_is_writable() will return %TRUE when the refcount of the object is exactly 1, meaning the current caller has the only reference to the object. gst_mini_object_make_writable() will return a writable version of the object, which might be a new copy when the refcount was not 1.
Opaque data can be associated with a #GstMiniObject with gst_mini_object_set_qdata() and gst_mini_object_get_qdata(). The data is meant to be specific to the particular object and is not automatically copied with gst_mini_object_copy() or similar methods.
A weak reference can be added and remove with gst_mini_object_weak_ref() and gst_mini_object_weak_unref() respectively.
- newtype MiniObject = MiniObject (ManagedPtr MiniObject)
- newZeroMiniObject :: MonadIO m => m MiniObject
- noMiniObject :: Maybe MiniObject
- data MiniObjectGetQdataMethodInfo
- miniObjectGetQdata :: MonadIO m => MiniObject -> Word32 -> m (Ptr ())
- data MiniObjectIsWritableMethodInfo
- miniObjectIsWritable :: MonadIO m => MiniObject -> m Bool
- data MiniObjectLockMethodInfo
- miniObjectLock :: MonadIO m => MiniObject -> [LockFlags] -> m Bool
- data MiniObjectSetQdataMethodInfo
- miniObjectSetQdata :: MonadIO m => MiniObject -> Word32 -> Ptr () -> DestroyNotify -> m ()
- data MiniObjectStealQdataMethodInfo
- miniObjectStealQdata :: MonadIO m => MiniObject -> Word32 -> m (Ptr ())
- data MiniObjectUnlockMethodInfo
- miniObjectUnlock :: MonadIO m => MiniObject -> [LockFlags] -> m ()
- clearMiniObjectDispose :: MonadIO m => MiniObject -> m ()
- getMiniObjectDispose :: MonadIO m => MiniObject -> m (Maybe MiniObjectDisposeFunction)
- miniObject_dispose :: AttrLabelProxy "dispose"
- setMiniObjectDispose :: MonadIO m => MiniObject -> FunPtr C_MiniObjectDisposeFunction -> m ()
- getMiniObjectFlags :: MonadIO m => MiniObject -> m Word32
- miniObject_flags :: AttrLabelProxy "flags"
- setMiniObjectFlags :: MonadIO m => MiniObject -> Word32 -> m ()
- clearMiniObjectFree :: MonadIO m => MiniObject -> m ()
- getMiniObjectFree :: MonadIO m => MiniObject -> m (Maybe MiniObjectFreeFunction)
- miniObject_free :: AttrLabelProxy "free"
- setMiniObjectFree :: MonadIO m => MiniObject -> FunPtr C_MiniObjectFreeFunction -> m ()
- getMiniObjectLockstate :: MonadIO m => MiniObject -> m Int32
- miniObject_lockstate :: AttrLabelProxy "lockstate"
- setMiniObjectLockstate :: MonadIO m => MiniObject -> Int32 -> m ()
- getMiniObjectRefcount :: MonadIO m => MiniObject -> m Int32
- miniObject_refcount :: AttrLabelProxy "refcount"
- setMiniObjectRefcount :: MonadIO m => MiniObject -> Int32 -> m ()
- getMiniObjectType :: MonadIO m => MiniObject -> m GType
- miniObject_type :: AttrLabelProxy "type"
- setMiniObjectType :: MonadIO m => MiniObject -> GType -> m ()
Exported types
newtype MiniObject Source #
Constructors
| MiniObject (ManagedPtr MiniObject) |
Instances
| WrappedPtr MiniObject Source # | |
| (~) AttrOpTag tag AttrSet => Constructible MiniObject tag Source # | |
| ((~) * info (ResolveMiniObjectMethod t MiniObject), MethodInfo * info MiniObject p) => IsLabel t (MiniObject -> p) Source # | |
| ((~) * info (ResolveMiniObjectMethod t MiniObject), MethodInfo * info MiniObject p) => IsLabelProxy t (MiniObject -> p) Source # | |
| HasAttributeList * MiniObject Source # | |
| ((~) * signature ([LockFlags] -> m ()), MonadIO m) => MethodInfo * MiniObjectUnlockMethodInfo MiniObject signature Source # | |
| ((~) * signature (Word32 -> m (Ptr ())), MonadIO m) => MethodInfo * MiniObjectStealQdataMethodInfo MiniObject signature Source # | |
| ((~) * signature (Word32 -> Ptr () -> DestroyNotify -> m ()), MonadIO m) => MethodInfo * MiniObjectSetQdataMethodInfo MiniObject signature Source # | |
| ((~) * signature ([LockFlags] -> m Bool), MonadIO m) => MethodInfo * MiniObjectLockMethodInfo MiniObject signature Source # | |
| ((~) * signature (m Bool), MonadIO m) => MethodInfo * MiniObjectIsWritableMethodInfo MiniObject signature Source # | |
| ((~) * signature (Word32 -> m (Ptr ())), MonadIO m) => MethodInfo * MiniObjectGetQdataMethodInfo MiniObject signature Source # | |
| type AttributeList MiniObject Source # | |
newZeroMiniObject :: MonadIO m => m MiniObject Source #
Construct a MiniObject struct initialized to zero.
Methods
getQdata
data MiniObjectGetQdataMethodInfo Source #
Instances
| ((~) * signature (Word32 -> m (Ptr ())), MonadIO m) => MethodInfo * MiniObjectGetQdataMethodInfo MiniObject signature Source # | |
miniObjectGetQdata :: MonadIO m => MiniObject -> Word32 -> m (Ptr ()) Source #
isWritable
data MiniObjectIsWritableMethodInfo Source #
Instances
| ((~) * signature (m Bool), MonadIO m) => MethodInfo * MiniObjectIsWritableMethodInfo MiniObject signature Source # | |
miniObjectIsWritable :: MonadIO m => MiniObject -> m Bool Source #
lock
data MiniObjectLockMethodInfo Source #
Instances
| ((~) * signature ([LockFlags] -> m Bool), MonadIO m) => MethodInfo * MiniObjectLockMethodInfo MiniObject signature Source # | |
miniObjectLock :: MonadIO m => MiniObject -> [LockFlags] -> m Bool Source #
setQdata
data MiniObjectSetQdataMethodInfo Source #
Instances
| ((~) * signature (Word32 -> Ptr () -> DestroyNotify -> m ()), MonadIO m) => MethodInfo * MiniObjectSetQdataMethodInfo MiniObject signature Source # | |
miniObjectSetQdata :: MonadIO m => MiniObject -> Word32 -> Ptr () -> DestroyNotify -> m () Source #
stealQdata
data MiniObjectStealQdataMethodInfo Source #
Instances
| ((~) * signature (Word32 -> m (Ptr ())), MonadIO m) => MethodInfo * MiniObjectStealQdataMethodInfo MiniObject signature Source # | |
miniObjectStealQdata :: MonadIO m => MiniObject -> Word32 -> m (Ptr ()) Source #
unlock
data MiniObjectUnlockMethodInfo Source #
Instances
| ((~) * signature ([LockFlags] -> m ()), MonadIO m) => MethodInfo * MiniObjectUnlockMethodInfo MiniObject signature Source # | |
miniObjectUnlock :: MonadIO m => MiniObject -> [LockFlags] -> m () Source #
Properties
dispose
clearMiniObjectDispose :: MonadIO m => MiniObject -> m () Source #
getMiniObjectDispose :: MonadIO m => MiniObject -> m (Maybe MiniObjectDisposeFunction) Source #
miniObject_dispose :: AttrLabelProxy "dispose" Source #
setMiniObjectDispose :: MonadIO m => MiniObject -> FunPtr C_MiniObjectDisposeFunction -> m () Source #
flags
getMiniObjectFlags :: MonadIO m => MiniObject -> m Word32 Source #
miniObject_flags :: AttrLabelProxy "flags" Source #
setMiniObjectFlags :: MonadIO m => MiniObject -> Word32 -> m () Source #
free
clearMiniObjectFree :: MonadIO m => MiniObject -> m () Source #
getMiniObjectFree :: MonadIO m => MiniObject -> m (Maybe MiniObjectFreeFunction) Source #
miniObject_free :: AttrLabelProxy "free" Source #
setMiniObjectFree :: MonadIO m => MiniObject -> FunPtr C_MiniObjectFreeFunction -> m () Source #
lockstate
getMiniObjectLockstate :: MonadIO m => MiniObject -> m Int32 Source #
miniObject_lockstate :: AttrLabelProxy "lockstate" Source #
setMiniObjectLockstate :: MonadIO m => MiniObject -> Int32 -> m () Source #
refcount
getMiniObjectRefcount :: MonadIO m => MiniObject -> m Int32 Source #
miniObject_refcount :: AttrLabelProxy "refcount" Source #
setMiniObjectRefcount :: MonadIO m => MiniObject -> Int32 -> m () Source #
type
getMiniObjectType :: MonadIO m => MiniObject -> m GType Source #
miniObject_type :: AttrLabelProxy "type" Source #
setMiniObjectType :: MonadIO m => MiniObject -> GType -> m () Source #