foundation-0.0.13: Alternative prelude with batteries and no dependencies

LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Foundation.Foreign

Description

 

Synopsis

Documentation

data FinalPtr a

Create a pointer with an associated finalizer

Constructors

FinalPtr (Ptr a) 
FinalForeign (ForeignPtr a) 

Instances

finalPtrSameMemory :: FinalPtr a -> FinalPtr b -> Bool

Check if 2 final ptr points on the same memory bits

it stand to reason that provided a final ptr that is still being referenced and thus have the memory still valid, if 2 final ptrs have the same address, they should be the same final ptr

castFinalPtr :: FinalPtr a -> FinalPtr b

Cast a finalized pointer from type a to type b

toFinalPtr :: PrimMonad prim => Ptr a -> (Ptr a -> IO ()) -> prim (FinalPtr a)

create a new FinalPtr from a Pointer

toFinalPtrForeign :: ForeignPtr a -> FinalPtr a

Create a new FinalPtr from a ForeignPtr

touchFinalPtr :: PrimMonad prim => FinalPtr p -> prim ()

withFinalPtr :: PrimMonad prim => FinalPtr p -> (Ptr p -> prim a) -> prim a

Looks at the raw pointer inside a FinalPtr, making sure the data pointed by the pointer is not finalized during the call to f

withUnsafeFinalPtr :: PrimMonad prim => FinalPtr p -> (Ptr p -> prim a) -> a

Unsafe version of withFinalPtr

withFinalPtrNoTouch :: FinalPtr p -> (Ptr p -> a) -> a

foreignMem

Arguments

:: PrimType ty 
=> FinalPtr ty

the start pointer with a finalizer

-> CountOf ty

the number of elements (in elements, not bytes)

-> UArray ty 

mutableForeignMem

Arguments

:: (PrimMonad prim, PrimType ty) 
=> FinalPtr ty

the start pointer with a finalizer

-> Int

the number of elements (in elements, not bytes)

-> prim (MUArray ty (PrimState prim))