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.Objects.Allocator
Description
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.
- newtype Allocator = Allocator (ManagedPtr Allocator)
- class GObject o => IsAllocator o
- toAllocator :: (MonadIO m, IsAllocator o) => o -> m Allocator
- noAllocator :: Maybe Allocator
- allocatorAlloc :: (HasCallStack, MonadIO m, IsAllocator a) => a -> Word64 -> Maybe AllocationParams -> m 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
Constructors
Allocator (ManagedPtr Allocator) |
class GObject o => IsAllocator o Source #
Instances
toAllocator :: (MonadIO m, IsAllocator o) => o -> m Allocator Source #
Methods
alloc
Arguments
:: (HasCallStack, MonadIO m, IsAllocator a) | |
=> a |
|
-> Word64 |
|
-> Maybe AllocationParams |
|
-> m 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
Arguments
:: (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
Arguments
:: (HasCallStack, MonadIO m, IsAllocator a) | |
=> a |
|
-> Memory |
|
-> m () |
Free memory
that was previously allocated with allocatorAlloc
.
register
Arguments
:: (HasCallStack, MonadIO m, IsAllocator a) | |
=> Text |
|
-> a |
|
-> m () |
Registers the memory allocator
with name
. This function takes ownership of
allocator
.
setDefault
Arguments
:: (HasCallStack, MonadIO m, IsAllocator a) | |
=> a |
|
-> m () |
Set the default allocator. This function takes ownership of allocator
.