Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
Memory is usually created by allocators with a allocatorAlloc
method call. When Nothing
is used as the allocator, the default allocator will
be used.
New allocators can be registered with allocatorRegister
.
Allocators are identified by name and can be retrieved with
allocatorFind
. allocatorSetDefault
can be used to change the
default allocator.
New memory can be created with memoryNewWrapped
that wraps the memory
allocated elsewhere.
Synopsis
- newtype Allocator = Allocator (ManagedPtr Allocator)
- class (GObject o, IsDescendantOf Allocator o) => IsAllocator o
- toAllocator :: (MonadIO m, IsAllocator o) => o -> m Allocator
- allocatorAlloc :: (HasCallStack, MonadIO m, IsAllocator a) => a -> Word64 -> Maybe AllocationParams -> m (Maybe Memory)
- allocatorFind :: (HasCallStack, MonadIO m) => Maybe Text -> m (Maybe Allocator)
- allocatorFree :: (HasCallStack, MonadIO m, IsAllocator a) => a -> Memory -> m ()
- allocatorRegister :: (HasCallStack, MonadIO m, IsAllocator a) => Text -> a -> m ()
- allocatorSetDefault :: (HasCallStack, MonadIO m, IsAllocator a) => a -> m ()
Exported types
Memory-managed wrapper type.
Instances
Eq Allocator Source # | |
GObject Allocator Source # | |
Defined in GI.Gst.Objects.Allocator | |
ManagedPtrNewtype Allocator Source # | |
Defined in GI.Gst.Objects.Allocator toManagedPtr :: Allocator -> ManagedPtr Allocator | |
TypedObject Allocator Source # | |
Defined in GI.Gst.Objects.Allocator glibType :: IO GType | |
IsGValue Allocator Source # | Convert |
Defined in GI.Gst.Objects.Allocator toGValue :: Allocator -> IO GValue fromGValue :: GValue -> IO Allocator | |
HasParentTypes Allocator Source # | |
Defined in GI.Gst.Objects.Allocator | |
type ParentTypes Allocator Source # | |
Defined in GI.Gst.Objects.Allocator |
class (GObject o, IsDescendantOf Allocator o) => IsAllocator o Source #
Type class for types which can be safely cast to Allocator
, for instance with toAllocator
.
Instances
(GObject o, IsDescendantOf Allocator o) => IsAllocator o Source # | |
Defined in GI.Gst.Objects.Allocator |
toAllocator :: (MonadIO m, IsAllocator o) => o -> m Allocator Source #
Methods
Overloaded methods
alloc
:: (HasCallStack, MonadIO m, IsAllocator a) | |
=> a |
|
-> Word64 |
|
-> Maybe AllocationParams |
|
-> m (Maybe Memory) | Returns: a new |
Use allocator
to allocate a new memory block with memory that is at least
size
big.
The optional params
can specify the prefix and padding for the memory. If
Nothing
is passed, no flags, no extra prefix/padding and a default alignment is
used.
The prefix/padding will be filled with 0 if flags contains
GST_MEMORY_FLAG_ZERO_PREFIXED
and GST_MEMORY_FLAG_ZERO_PADDED
respectively.
When allocator
is Nothing
, the default allocator will be used.
The alignment in params
is given as a bitmask so that align
+ 1 equals
the amount of bytes to align to. For example, to align to 8 bytes,
use an alignment of 7.
find
:: (HasCallStack, MonadIO m) | |
=> Maybe Text |
|
-> m (Maybe Allocator) | Returns: a |
Find a previously registered allocator with name
. When name
is Nothing
, the
default allocator will be returned.
free
:: (HasCallStack, MonadIO m, IsAllocator a) | |
=> a |
|
-> Memory |
|
-> m () |
Free memory
that was previously allocated with allocatorAlloc
.
register
:: (HasCallStack, MonadIO m, IsAllocator a) | |
=> Text |
|
-> a |
|
-> m () |
Registers the memory allocator
with name
. This function takes ownership of
allocator
.
setDefault
:: (HasCallStack, MonadIO m, IsAllocator a) | |
=> a |
|
-> m () |
Set the default allocator. This function takes ownership of allocator
.