{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Bindings.HDF5.PropertyList.FAPL
( module Bindings.HDF5.PropertyList
, FAPL
, FileAccessPropertyList
, setAlignment
, getAlignment
, setFamilyOffset
, getFamilyOffset
, setFCloseDegree
, getFCloseDegree
) where
import Bindings.HDF5.Core
import Bindings.HDF5.Error
import Bindings.HDF5.PropertyList
import Bindings.HDF5.Raw.H5F
import Bindings.HDF5.Raw.H5P
import Control.Arrow ((***))
import Foreign.Ptr.Conventions
class PropertyList t => FileAccessPropertyList t where
newtype FAPL = FAPL PropertyListID
deriving (FAPL -> FAPL -> Bool
(FAPL -> FAPL -> Bool) -> (FAPL -> FAPL -> Bool) -> Eq FAPL
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FAPL -> FAPL -> Bool
== :: FAPL -> FAPL -> Bool
$c/= :: FAPL -> FAPL -> Bool
/= :: FAPL -> FAPL -> Bool
Eq, FAPL -> HId_t
(FAPL -> HId_t) -> HId FAPL
forall t. (t -> HId_t) -> HId t
$chid :: FAPL -> HId_t
hid :: FAPL -> HId_t
HId, HId_t -> FAPL
(HId_t -> FAPL) -> FromHId FAPL
forall t. (HId_t -> t) -> FromHId t
$cuncheckedFromHId :: HId_t -> FAPL
uncheckedFromHId :: HId_t -> FAPL
FromHId, FAPL -> Bool
(FAPL -> Bool) -> HDFResultType FAPL
forall t. (t -> Bool) -> HDFResultType t
$cisError :: FAPL -> Bool
isError :: FAPL -> Bool
HDFResultType, FromHId FAPL
HId FAPL
(HId FAPL, FromHId FAPL) => PropertyListOrClass FAPL
forall t. (HId t, FromHId t) => PropertyListOrClass t
PropertyListOrClass)
instance PropertyList FAPL where
staticPlistClass :: Tagged FAPL PropertyListClassID
staticPlistClass = PropertyListClassID -> Tagged FAPL PropertyListClassID
forall {k} (s :: k) b. b -> Tagged s b
Tagged PropertyListClassID
fileAccess
instance FileAccessPropertyList FAPL
setAlignment :: FileAccessPropertyList fapl => fapl -> HSize -> HSize -> IO ()
setAlignment :: forall fapl.
FileAccessPropertyList fapl =>
fapl -> HSize -> HSize -> IO ()
setAlignment fapl
fapl HSize
threshold HSize
alignment =
IO HErr_t -> IO ()
forall t. HDFResultType t => IO t -> IO ()
withErrorCheck_ (IO HErr_t -> IO ()) -> IO HErr_t -> IO ()
forall a b. (a -> b) -> a -> b
$
HId_t -> HSize_t -> HSize_t -> IO HErr_t
h5p_set_alignment (fapl -> HId_t
forall t. HId t => t -> HId_t
hid fapl
fapl) (HSize -> HSize_t
hSize HSize
threshold) (HSize -> HSize_t
hSize HSize
alignment)
getAlignment :: FileAccessPropertyList fapl => fapl -> IO (HSize, HSize)
getAlignment :: forall fapl.
FileAccessPropertyList fapl =>
fapl -> IO (HSize, HSize)
getAlignment fapl
fapl =
((HSize_t, HSize_t) -> (HSize, HSize))
-> IO (HSize_t, HSize_t) -> IO (HSize, HSize)
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (HSize_t -> HSize
HSize (HSize_t -> HSize)
-> (HSize_t -> HSize) -> (HSize_t, HSize_t) -> (HSize, HSize)
forall b c b' c'. (b -> c) -> (b' -> c') -> (b, b') -> (c, c')
forall (a :: * -> * -> *) b c b' c'.
Arrow a =>
a b c -> a b' c' -> a (b, b') (c, c')
*** HSize_t -> HSize
HSize) (IO (HSize_t, HSize_t) -> IO (HSize, HSize))
-> IO (HSize_t, HSize_t) -> IO (HSize, HSize)
forall a b. (a -> b) -> a -> b
$
(Out HSize_t -> IO HSize_t) -> IO (HSize_t, HSize_t)
forall a (m :: * -> *) b.
(Storable a, MonadBaseControl IO m, MonadIO m) =>
(Out a -> m b) -> m (a, b)
withOut ((Out HSize_t -> IO HSize_t) -> IO (HSize_t, HSize_t))
-> (Out HSize_t -> IO HSize_t) -> IO (HSize_t, HSize_t)
forall a b. (a -> b) -> a -> b
$ \Out HSize_t
threshold ->
(Out HSize_t -> IO ()) -> IO HSize_t
forall a (m :: * -> *) b.
(Storable a, MonadBaseControl IO m, MonadIO m) =>
(Out a -> m b) -> m a
withOut_ ((Out HSize_t -> IO ()) -> IO HSize_t)
-> (Out HSize_t -> IO ()) -> IO HSize_t
forall a b. (a -> b) -> a -> b
$ \Out HSize_t
alignment ->
IO HErr_t -> IO ()
forall t. HDFResultType t => IO t -> IO ()
withErrorCheck_ (IO HErr_t -> IO ()) -> IO HErr_t -> IO ()
forall a b. (a -> b) -> a -> b
$
HId_t -> Out HSize_t -> Out HSize_t -> IO HErr_t
h5p_get_alignment (fapl -> HId_t
forall t. HId t => t -> HId_t
hid fapl
fapl) Out HSize_t
threshold Out HSize_t
alignment
setFamilyOffset :: FileAccessPropertyList fapl => fapl -> HSize -> IO ()
setFamilyOffset :: forall fapl. FileAccessPropertyList fapl => fapl -> HSize -> IO ()
setFamilyOffset fapl
fapl HSize
offset =
IO HErr_t -> IO ()
forall t. HDFResultType t => IO t -> IO ()
withErrorCheck_ (IO HErr_t -> IO ()) -> IO HErr_t -> IO ()
forall a b. (a -> b) -> a -> b
$
HId_t -> HSize_t -> IO HErr_t
h5p_set_family_offset (fapl -> HId_t
forall t. HId t => t -> HId_t
hid fapl
fapl) (HSize -> HSize_t
hSize HSize
offset)
getFamilyOffset :: FileAccessPropertyList fapl => fapl -> IO HSize
getFamilyOffset :: forall fapl. FileAccessPropertyList fapl => fapl -> IO HSize
getFamilyOffset fapl
fapl =
(HSize_t -> HSize) -> IO HSize_t -> IO HSize
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap HSize_t -> HSize
HSize (IO HSize_t -> IO HSize) -> IO HSize_t -> IO HSize
forall a b. (a -> b) -> a -> b
$
(Out HSize_t -> IO ()) -> IO HSize_t
forall a (m :: * -> *) b.
(Storable a, MonadBaseControl IO m, MonadIO m) =>
(Out a -> m b) -> m a
withOut_ ((Out HSize_t -> IO ()) -> IO HSize_t)
-> (Out HSize_t -> IO ()) -> IO HSize_t
forall a b. (a -> b) -> a -> b
$ \Out HSize_t
offset ->
IO HErr_t -> IO ()
forall t. HDFResultType t => IO t -> IO ()
withErrorCheck_ (IO HErr_t -> IO ()) -> IO HErr_t -> IO ()
forall a b. (a -> b) -> a -> b
$
HId_t -> Out HSize_t -> IO HErr_t
h5p_get_family_offset (fapl -> HId_t
forall t. HId t => t -> HId_t
hid fapl
fapl) Out HSize_t
offset
setFCloseDegree :: FileAccessPropertyList fapl => fapl -> H5F_close_degree_t -> IO ()
setFCloseDegree :: forall fapl.
FileAccessPropertyList fapl =>
fapl -> H5F_close_degree_t -> IO ()
setFCloseDegree fapl
fapl H5F_close_degree_t
degree =
IO HErr_t -> IO ()
forall t. HDFResultType t => IO t -> IO ()
withErrorCheck_ (IO HErr_t -> IO ()) -> IO HErr_t -> IO ()
forall a b. (a -> b) -> a -> b
$
HId_t -> H5F_close_degree_t -> IO HErr_t
h5p_set_fclose_degree (fapl -> HId_t
forall t. HId t => t -> HId_t
hid fapl
fapl) H5F_close_degree_t
degree
getFCloseDegree :: FileAccessPropertyList fapl => fapl -> IO H5F_close_degree_t
getFCloseDegree :: forall fapl.
FileAccessPropertyList fapl =>
fapl -> IO H5F_close_degree_t
getFCloseDegree fapl
fapl =
(Out H5F_close_degree_t -> IO ()) -> IO H5F_close_degree_t
forall a (m :: * -> *) b.
(Storable a, MonadBaseControl IO m, MonadIO m) =>
(Out a -> m b) -> m a
withOut_ ((Out H5F_close_degree_t -> IO ()) -> IO H5F_close_degree_t)
-> (Out H5F_close_degree_t -> IO ()) -> IO H5F_close_degree_t
forall a b. (a -> b) -> a -> b
$ \Out H5F_close_degree_t
degree ->
IO HErr_t -> IO ()
forall t. HDFResultType t => IO t -> IO ()
withErrorCheck_ (IO HErr_t -> IO ()) -> IO HErr_t -> IO ()
forall a b. (a -> b) -> a -> b
$
HId_t -> Out H5F_close_degree_t -> IO HErr_t
h5p_get_fclose_degree (fapl -> HId_t
forall t. HId t => t -> HId_t
hid fapl
fapl) Out H5F_close_degree_t
degree