hdf5-1.8.14: Haskell interface to the HDF5 scientific data storage library.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Foreign.Ptr.Conventions

Description

various common data-passing conventions

Synopsis

Documentation

class WrappedPtr p where Source #

Minimal complete definition

wrapPtr, unwrapPtr

Methods

wrapPtr :: Ptr a -> p a Source #

unwrapPtr :: p a -> Ptr a Source #

nullWrappedPtr :: p a Source #

castWrappedPtr :: p a -> p b Source #

Instances

Instances details
WrappedPtr Ptr Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

wrapPtr :: Ptr a -> Ptr a Source #

unwrapPtr :: Ptr a -> Ptr a Source #

nullWrappedPtr :: Ptr a Source #

castWrappedPtr :: Ptr a -> Ptr b Source #

WrappedPtr In Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

wrapPtr :: Ptr a -> In a Source #

unwrapPtr :: In a -> Ptr a Source #

nullWrappedPtr :: In a Source #

castWrappedPtr :: In a -> In b Source #

WrappedPtr InArray Source # 
Instance details

Defined in Foreign.Ptr.Conventions

WrappedPtr InOut Source # 
Instance details

Defined in Foreign.Ptr.Conventions

WrappedPtr InOutArray Source # 
Instance details

Defined in Foreign.Ptr.Conventions

WrappedPtr Out Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

wrapPtr :: Ptr a -> Out a Source #

unwrapPtr :: Out a -> Ptr a Source #

nullWrappedPtr :: Out a Source #

castWrappedPtr :: Out a -> Out b Source #

WrappedPtr OutArray Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Input pointers

newtype In a Source #

In by-ref parameter; memory is allocated and freed by caller

Constructors

In (Ptr a) 

Instances

Instances details
WrappedPtr In Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

wrapPtr :: Ptr a -> In a Source #

unwrapPtr :: In a -> Ptr a Source #

nullWrappedPtr :: In a Source #

castWrappedPtr :: In a -> In b Source #

Storable (In a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

sizeOf :: In a -> Int

alignment :: In a -> Int

peekElemOff :: Ptr (In a) -> Int -> IO (In a)

pokeElemOff :: Ptr (In a) -> Int -> In a -> IO ()

peekByteOff :: Ptr b -> Int -> IO (In a)

pokeByteOff :: Ptr b -> Int -> In a -> IO ()

peek :: Ptr (In a) -> IO (In a)

poke :: Ptr (In a) -> In a -> IO ()

Show (In a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

showsPrec :: Int -> In a -> ShowS

show :: In a -> String

showList :: [In a] -> ShowS

Eq (In a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

(==) :: In a -> In a -> Bool

(/=) :: In a -> In a -> Bool

Ord (In a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

compare :: In a -> In a -> Ordering

(<) :: In a -> In a -> Bool

(<=) :: In a -> In a -> Bool

(>) :: In a -> In a -> Bool

(>=) :: In a -> In a -> Bool

max :: In a -> In a -> In a

min :: In a -> In a -> In a

newtype InArray a Source #

In by-ref array; memory is allocated and freed by caller

Constructors

InArray (Ptr a) 

Instances

Instances details
WrappedPtr InArray Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Storable (InArray a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

sizeOf :: InArray a -> Int

alignment :: InArray a -> Int

peekElemOff :: Ptr (InArray a) -> Int -> IO (InArray a)

pokeElemOff :: Ptr (InArray a) -> Int -> InArray a -> IO ()

peekByteOff :: Ptr b -> Int -> IO (InArray a)

pokeByteOff :: Ptr b -> Int -> InArray a -> IO ()

peek :: Ptr (InArray a) -> IO (InArray a)

poke :: Ptr (InArray a) -> InArray a -> IO ()

Show (InArray a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

showsPrec :: Int -> InArray a -> ShowS

show :: InArray a -> String

showList :: [InArray a] -> ShowS

Eq (InArray a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

(==) :: InArray a -> InArray a -> Bool

(/=) :: InArray a -> InArray a -> Bool

Ord (InArray a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

compare :: InArray a -> InArray a -> Ordering

(<) :: InArray a -> InArray a -> Bool

(<=) :: InArray a -> InArray a -> Bool

(>) :: InArray a -> InArray a -> Bool

(>=) :: InArray a -> InArray a -> Bool

max :: InArray a -> InArray a -> InArray a

min :: InArray a -> InArray a -> InArray a

withIn :: (Storable a, MonadBaseControl IO m) => a -> (In a -> m b) -> m b Source #

withInList :: (Storable a, MonadBaseControl IO m) => [a] -> (InArray a -> m b) -> m b Source #

withInVector :: (Storable a, MonadBaseControl IO m) => Vector a -> (InArray a -> m b) -> m b Source #

withInMVector :: (Storable a, MonadBaseControl IO m) => IOVector a -> (InArray a -> m b) -> m b Source #

Output pointers

newtype Out a Source #

Out by-ref parameter; memory is allocated and freed by caller

Constructors

Out (Ptr a) 

Instances

Instances details
WrappedPtr Out Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

wrapPtr :: Ptr a -> Out a Source #

unwrapPtr :: Out a -> Ptr a Source #

nullWrappedPtr :: Out a Source #

castWrappedPtr :: Out a -> Out b Source #

Storable (Out a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

sizeOf :: Out a -> Int

alignment :: Out a -> Int

peekElemOff :: Ptr (Out a) -> Int -> IO (Out a)

pokeElemOff :: Ptr (Out a) -> Int -> Out a -> IO ()

peekByteOff :: Ptr b -> Int -> IO (Out a)

pokeByteOff :: Ptr b -> Int -> Out a -> IO ()

peek :: Ptr (Out a) -> IO (Out a)

poke :: Ptr (Out a) -> Out a -> IO ()

Show (Out a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

showsPrec :: Int -> Out a -> ShowS

show :: Out a -> String

showList :: [Out a] -> ShowS

Eq (Out a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

(==) :: Out a -> Out a -> Bool

(/=) :: Out a -> Out a -> Bool

Ord (Out a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

compare :: Out a -> Out a -> Ordering

(<) :: Out a -> Out a -> Bool

(<=) :: Out a -> Out a -> Bool

(>) :: Out a -> Out a -> Bool

(>=) :: Out a -> Out a -> Bool

max :: Out a -> Out a -> Out a

min :: Out a -> Out a -> Out a

newtype OutArray a Source #

Out by-ref array; length is specified by caller, memory is allocated and freed by caller

Constructors

OutArray (Ptr a) 

Instances

Instances details
WrappedPtr OutArray Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Storable (OutArray a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

sizeOf :: OutArray a -> Int

alignment :: OutArray a -> Int

peekElemOff :: Ptr (OutArray a) -> Int -> IO (OutArray a)

pokeElemOff :: Ptr (OutArray a) -> Int -> OutArray a -> IO ()

peekByteOff :: Ptr b -> Int -> IO (OutArray a)

pokeByteOff :: Ptr b -> Int -> OutArray a -> IO ()

peek :: Ptr (OutArray a) -> IO (OutArray a)

poke :: Ptr (OutArray a) -> OutArray a -> IO ()

Show (OutArray a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

showsPrec :: Int -> OutArray a -> ShowS

show :: OutArray a -> String

showList :: [OutArray a] -> ShowS

Eq (OutArray a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

(==) :: OutArray a -> OutArray a -> Bool

(/=) :: OutArray a -> OutArray a -> Bool

Ord (OutArray a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

compare :: OutArray a -> OutArray a -> Ordering

(<) :: OutArray a -> OutArray a -> Bool

(<=) :: OutArray a -> OutArray a -> Bool

(>) :: OutArray a -> OutArray a -> Bool

(>=) :: OutArray a -> OutArray a -> Bool

max :: OutArray a -> OutArray a -> OutArray a

min :: OutArray a -> OutArray a -> OutArray a

withOut :: (Storable a, MonadBaseControl IO m, MonadIO m) => (Out a -> m b) -> m (a, b) Source #

withMaybeOut :: (Storable a, MonadBaseControl IO m, MonadIO m) => (Out a -> m Bool) -> m (Maybe a) Source #

withOut_ :: (Storable a, MonadBaseControl IO m, MonadIO m) => (Out a -> m b) -> m a Source #

withOutMVector :: (Storable a, MonadBaseControl IO m) => IOVector a -> (Int -> OutArray a -> m b) -> m b Source #

withOutVector :: (Storable a, MonadBaseControl IO m, MonadIO m) => Int -> (OutArray a -> m b) -> m (Vector a, b) Source #

withOutVector_ :: Storable a => Int -> (OutArray a -> IO b) -> IO (Vector a) Source #

withOutVector' :: (Storable a, Integral b) => Int -> (OutArray a -> IO b) -> IO (Vector a) Source #

withOutList :: (Storable a, MonadIO m) => Int -> (OutArray a -> m b) -> m ([a], b) Source #

withOutList_ :: (Storable a, MonadIO m) => Int -> (OutArray a -> m b) -> m [a] Source #

withOutList' :: (Storable a, MonadIO m) => Int -> (OutArray a -> m Int) -> m ([a], Int) Source #

withOutList0 :: (Storable a, Eq a, MonadIO m) => a -> Int -> (OutArray a -> m b) -> m ([a], b) Source #

withOutList0 zero n f: allocate an array large enough to hold n elements, plus one extra spot for a terminator. Calls f with that buffer, which is expected to fill it with up to n elements, followed by zero. The elements are then read out into a list.

withOutByteString :: (MonadBaseControl IO m, MonadIO m, Integral a, Integral b) => (OutArray CChar -> a -> m b) -> m ByteString Source #

Get a ByteString from a function using the common "buffer and size in, bytes written out" convention.

Calls the function twice; once with a null pointer to discover the length needed and once more to actually read out the string.

withOutByteString' :: (MonadBaseControl IO m, MonadIO m, Integral a, Integral b) => (OutArray CChar -> a -> m b) -> m ByteString Source #

Variant of withOutByteString which expects the discovered length to be one byte less than the required buffer size. As required for H5Fget_name

Bidirectional pointers

newtype InOut a Source #

In-out parameter. Memory is allocated and freed by caller.

Constructors

InOut (Ptr a) 

Instances

Instances details
WrappedPtr InOut Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Storable (InOut a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

sizeOf :: InOut a -> Int

alignment :: InOut a -> Int

peekElemOff :: Ptr (InOut a) -> Int -> IO (InOut a)

pokeElemOff :: Ptr (InOut a) -> Int -> InOut a -> IO ()

peekByteOff :: Ptr b -> Int -> IO (InOut a)

pokeByteOff :: Ptr b -> Int -> InOut a -> IO ()

peek :: Ptr (InOut a) -> IO (InOut a)

poke :: Ptr (InOut a) -> InOut a -> IO ()

Show (InOut a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

showsPrec :: Int -> InOut a -> ShowS

show :: InOut a -> String

showList :: [InOut a] -> ShowS

Eq (InOut a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

(==) :: InOut a -> InOut a -> Bool

(/=) :: InOut a -> InOut a -> Bool

Ord (InOut a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

compare :: InOut a -> InOut a -> Ordering

(<) :: InOut a -> InOut a -> Bool

(<=) :: InOut a -> InOut a -> Bool

(>) :: InOut a -> InOut a -> Bool

(>=) :: InOut a -> InOut a -> Bool

max :: InOut a -> InOut a -> InOut a

min :: InOut a -> InOut a -> InOut a

newtype InOutArray a Source #

Constructors

InOutArray (Ptr a) 

Instances

Instances details
WrappedPtr InOutArray Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Storable (InOutArray a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

sizeOf :: InOutArray a -> Int

alignment :: InOutArray a -> Int

peekElemOff :: Ptr (InOutArray a) -> Int -> IO (InOutArray a)

pokeElemOff :: Ptr (InOutArray a) -> Int -> InOutArray a -> IO ()

peekByteOff :: Ptr b -> Int -> IO (InOutArray a)

pokeByteOff :: Ptr b -> Int -> InOutArray a -> IO ()

peek :: Ptr (InOutArray a) -> IO (InOutArray a)

poke :: Ptr (InOutArray a) -> InOutArray a -> IO ()

Show (InOutArray a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

showsPrec :: Int -> InOutArray a -> ShowS

show :: InOutArray a -> String

showList :: [InOutArray a] -> ShowS

Eq (InOutArray a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

(==) :: InOutArray a -> InOutArray a -> Bool

(/=) :: InOutArray a -> InOutArray a -> Bool

Ord (InOutArray a) Source # 
Instance details

Defined in Foreign.Ptr.Conventions

Methods

compare :: InOutArray a -> InOutArray a -> Ordering

(<) :: InOutArray a -> InOutArray a -> Bool

(<=) :: InOutArray a -> InOutArray a -> Bool

(>) :: InOutArray a -> InOutArray a -> Bool

(>=) :: InOutArray a -> InOutArray a -> Bool

max :: InOutArray a -> InOutArray a -> InOutArray a

min :: InOutArray a -> InOutArray a -> InOutArray a

withInOut :: (Storable a, MonadBaseControl IO m, MonadIO m) => a -> (InOut a -> m b) -> m (a, b) Source #

withInOut_ :: (Storable a, MonadBaseControl IO m, MonadIO m) => a -> (InOut a -> m b) -> m a Source #

withInOutList :: (Storable a, MonadIO m) => Int -> [a] -> (InOutArray a -> m (Int, b)) -> m ([a], b) Source #

withInOutList_ :: (Storable a, MonadIO m) => Int -> [a] -> (InOutArray a -> m Int) -> m [a] Source #