#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.OSTree.Structs.RepoCommitTraverseIter
(
RepoCommitTraverseIter(..) ,
newZeroRepoCommitTraverseIter ,
noRepoCommitTraverseIter ,
repoCommitTraverseIterCleanup ,
#if ENABLE_OVERLOADING
RepoCommitTraverseIterClearMethodInfo ,
#endif
repoCommitTraverseIterClear ,
#if ENABLE_OVERLOADING
RepoCommitTraverseIterGetDirMethodInfo ,
#endif
repoCommitTraverseIterGetDir ,
#if ENABLE_OVERLOADING
RepoCommitTraverseIterGetFileMethodInfo ,
#endif
repoCommitTraverseIterGetFile ,
#if ENABLE_OVERLOADING
RepoCommitTraverseIterInitCommitMethodInfo,
#endif
repoCommitTraverseIterInitCommit ,
#if ENABLE_OVERLOADING
RepoCommitTraverseIterInitDirtreeMethodInfo,
#endif
repoCommitTraverseIterInitDirtree ,
#if ENABLE_OVERLOADING
RepoCommitTraverseIterNextMethodInfo ,
#endif
repoCommitTraverseIterNext ,
getRepoCommitTraverseIterInitialized ,
#if ENABLE_OVERLOADING
repoCommitTraverseIter_initialized ,
#endif
setRepoCommitTraverseIterInitialized ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.Gio.Objects.Cancellable as Gio.Cancellable
import {-# SOURCE #-} qualified GI.OSTree.Enums as OSTree.Enums
import {-# SOURCE #-} qualified GI.OSTree.Flags as OSTree.Flags
import {-# SOURCE #-} qualified GI.OSTree.Objects.Repo as OSTree.Repo
newtype RepoCommitTraverseIter = RepoCommitTraverseIter (ManagedPtr RepoCommitTraverseIter)
instance WrappedPtr RepoCommitTraverseIter where
wrappedPtrCalloc = callocBytes 224
wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 224 >=> wrapPtr RepoCommitTraverseIter)
wrappedPtrFree = Just ptr_to_g_free
newZeroRepoCommitTraverseIter :: MonadIO m => m RepoCommitTraverseIter
newZeroRepoCommitTraverseIter = liftIO $ wrappedPtrCalloc >>= wrapPtr RepoCommitTraverseIter
instance tag ~ 'AttrSet => Constructible RepoCommitTraverseIter tag where
new _ attrs = do
o <- newZeroRepoCommitTraverseIter
GI.Attributes.set o attrs
return o
noRepoCommitTraverseIter :: Maybe RepoCommitTraverseIter
noRepoCommitTraverseIter = Nothing
getRepoCommitTraverseIterInitialized :: MonadIO m => RepoCommitTraverseIter -> m Bool
getRepoCommitTraverseIterInitialized s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CInt
let val' = (/= 0) val
return val'
setRepoCommitTraverseIterInitialized :: MonadIO m => RepoCommitTraverseIter -> Bool -> m ()
setRepoCommitTraverseIterInitialized s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 0) (val' :: CInt)
#if ENABLE_OVERLOADING
data RepoCommitTraverseIterInitializedFieldInfo
instance AttrInfo RepoCommitTraverseIterInitializedFieldInfo where
type AttrAllowedOps RepoCommitTraverseIterInitializedFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint RepoCommitTraverseIterInitializedFieldInfo = (~) Bool
type AttrBaseTypeConstraint RepoCommitTraverseIterInitializedFieldInfo = (~) RepoCommitTraverseIter
type AttrGetType RepoCommitTraverseIterInitializedFieldInfo = Bool
type AttrLabel RepoCommitTraverseIterInitializedFieldInfo = "initialized"
type AttrOrigin RepoCommitTraverseIterInitializedFieldInfo = RepoCommitTraverseIter
attrGet _ = getRepoCommitTraverseIterInitialized
attrSet _ = setRepoCommitTraverseIterInitialized
attrConstruct = undefined
attrClear _ = undefined
repoCommitTraverseIter_initialized :: AttrLabelProxy "initialized"
repoCommitTraverseIter_initialized = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList RepoCommitTraverseIter
type instance O.AttributeList RepoCommitTraverseIter = RepoCommitTraverseIterAttributeList
type RepoCommitTraverseIterAttributeList = ('[ '("initialized", RepoCommitTraverseIterInitializedFieldInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "ostree_repo_commit_traverse_iter_clear" ostree_repo_commit_traverse_iter_clear ::
Ptr RepoCommitTraverseIter ->
IO ()
repoCommitTraverseIterClear ::
(B.CallStack.HasCallStack, MonadIO m) =>
RepoCommitTraverseIter
-> m ()
repoCommitTraverseIterClear iter = liftIO $ do
iter' <- unsafeManagedPtrGetPtr iter
ostree_repo_commit_traverse_iter_clear iter'
touchManagedPtr iter
return ()
#if ENABLE_OVERLOADING
data RepoCommitTraverseIterClearMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo RepoCommitTraverseIterClearMethodInfo RepoCommitTraverseIter signature where
overloadedMethod _ = repoCommitTraverseIterClear
#endif
foreign import ccall "ostree_repo_commit_traverse_iter_get_dir" ostree_repo_commit_traverse_iter_get_dir ::
Ptr RepoCommitTraverseIter ->
Ptr CString ->
Ptr CString ->
Ptr CString ->
IO ()
repoCommitTraverseIterGetDir ::
(B.CallStack.HasCallStack, MonadIO m) =>
RepoCommitTraverseIter
-> m ((T.Text, T.Text, T.Text))
repoCommitTraverseIterGetDir iter = liftIO $ do
iter' <- unsafeManagedPtrGetPtr iter
outName <- allocMem :: IO (Ptr CString)
outContentChecksum <- allocMem :: IO (Ptr CString)
outMetaChecksum <- allocMem :: IO (Ptr CString)
ostree_repo_commit_traverse_iter_get_dir iter' outName outContentChecksum outMetaChecksum
outName' <- peek outName
outName'' <- cstringToText outName'
outContentChecksum' <- peek outContentChecksum
outContentChecksum'' <- cstringToText outContentChecksum'
outMetaChecksum' <- peek outMetaChecksum
outMetaChecksum'' <- cstringToText outMetaChecksum'
touchManagedPtr iter
freeMem outName
freeMem outContentChecksum
freeMem outMetaChecksum
return (outName'', outContentChecksum'', outMetaChecksum'')
#if ENABLE_OVERLOADING
data RepoCommitTraverseIterGetDirMethodInfo
instance (signature ~ (m ((T.Text, T.Text, T.Text))), MonadIO m) => O.MethodInfo RepoCommitTraverseIterGetDirMethodInfo RepoCommitTraverseIter signature where
overloadedMethod _ = repoCommitTraverseIterGetDir
#endif
foreign import ccall "ostree_repo_commit_traverse_iter_get_file" ostree_repo_commit_traverse_iter_get_file ::
Ptr RepoCommitTraverseIter ->
Ptr CString ->
Ptr CString ->
IO ()
repoCommitTraverseIterGetFile ::
(B.CallStack.HasCallStack, MonadIO m) =>
RepoCommitTraverseIter
-> m ((T.Text, T.Text))
repoCommitTraverseIterGetFile iter = liftIO $ do
iter' <- unsafeManagedPtrGetPtr iter
outName <- allocMem :: IO (Ptr CString)
outChecksum <- allocMem :: IO (Ptr CString)
ostree_repo_commit_traverse_iter_get_file iter' outName outChecksum
outName' <- peek outName
outName'' <- cstringToText outName'
outChecksum' <- peek outChecksum
outChecksum'' <- cstringToText outChecksum'
touchManagedPtr iter
freeMem outName
freeMem outChecksum
return (outName'', outChecksum'')
#if ENABLE_OVERLOADING
data RepoCommitTraverseIterGetFileMethodInfo
instance (signature ~ (m ((T.Text, T.Text))), MonadIO m) => O.MethodInfo RepoCommitTraverseIterGetFileMethodInfo RepoCommitTraverseIter signature where
overloadedMethod _ = repoCommitTraverseIterGetFile
#endif
foreign import ccall "ostree_repo_commit_traverse_iter_init_commit" ostree_repo_commit_traverse_iter_init_commit ::
Ptr RepoCommitTraverseIter ->
Ptr OSTree.Repo.Repo ->
Ptr GVariant ->
CUInt ->
Ptr (Ptr GError) ->
IO CInt
repoCommitTraverseIterInitCommit ::
(B.CallStack.HasCallStack, MonadIO m, OSTree.Repo.IsRepo a) =>
RepoCommitTraverseIter
-> a
-> GVariant
-> [OSTree.Flags.RepoCommitTraverseFlags]
-> m ()
repoCommitTraverseIterInitCommit iter repo commit flags = liftIO $ do
iter' <- unsafeManagedPtrGetPtr iter
repo' <- unsafeManagedPtrCastPtr repo
commit' <- unsafeManagedPtrGetPtr commit
let flags' = gflagsToWord flags
onException (do
_ <- propagateGError $ ostree_repo_commit_traverse_iter_init_commit iter' repo' commit' flags'
touchManagedPtr iter
touchManagedPtr repo
touchManagedPtr commit
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoCommitTraverseIterInitCommitMethodInfo
instance (signature ~ (a -> GVariant -> [OSTree.Flags.RepoCommitTraverseFlags] -> m ()), MonadIO m, OSTree.Repo.IsRepo a) => O.MethodInfo RepoCommitTraverseIterInitCommitMethodInfo RepoCommitTraverseIter signature where
overloadedMethod _ = repoCommitTraverseIterInitCommit
#endif
foreign import ccall "ostree_repo_commit_traverse_iter_init_dirtree" ostree_repo_commit_traverse_iter_init_dirtree ::
Ptr RepoCommitTraverseIter ->
Ptr OSTree.Repo.Repo ->
Ptr GVariant ->
CUInt ->
Ptr (Ptr GError) ->
IO CInt
repoCommitTraverseIterInitDirtree ::
(B.CallStack.HasCallStack, MonadIO m, OSTree.Repo.IsRepo a) =>
RepoCommitTraverseIter
-> a
-> GVariant
-> [OSTree.Flags.RepoCommitTraverseFlags]
-> m ()
repoCommitTraverseIterInitDirtree iter repo dirtree flags = liftIO $ do
iter' <- unsafeManagedPtrGetPtr iter
repo' <- unsafeManagedPtrCastPtr repo
dirtree' <- unsafeManagedPtrGetPtr dirtree
let flags' = gflagsToWord flags
onException (do
_ <- propagateGError $ ostree_repo_commit_traverse_iter_init_dirtree iter' repo' dirtree' flags'
touchManagedPtr iter
touchManagedPtr repo
touchManagedPtr dirtree
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoCommitTraverseIterInitDirtreeMethodInfo
instance (signature ~ (a -> GVariant -> [OSTree.Flags.RepoCommitTraverseFlags] -> m ()), MonadIO m, OSTree.Repo.IsRepo a) => O.MethodInfo RepoCommitTraverseIterInitDirtreeMethodInfo RepoCommitTraverseIter signature where
overloadedMethod _ = repoCommitTraverseIterInitDirtree
#endif
foreign import ccall "ostree_repo_commit_traverse_iter_next" ostree_repo_commit_traverse_iter_next ::
Ptr RepoCommitTraverseIter ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CUInt
repoCommitTraverseIterNext ::
(B.CallStack.HasCallStack, MonadIO m, Gio.Cancellable.IsCancellable a) =>
RepoCommitTraverseIter
-> Maybe (a)
-> m OSTree.Enums.RepoCommitIterResult
repoCommitTraverseIterNext iter cancellable = liftIO $ do
iter' <- unsafeManagedPtrGetPtr iter
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
result <- propagateGError $ ostree_repo_commit_traverse_iter_next iter' maybeCancellable
let result' = (toEnum . fromIntegral) result
touchManagedPtr iter
whenJust cancellable touchManagedPtr
return result'
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoCommitTraverseIterNextMethodInfo
instance (signature ~ (Maybe (a) -> m OSTree.Enums.RepoCommitIterResult), MonadIO m, Gio.Cancellable.IsCancellable a) => O.MethodInfo RepoCommitTraverseIterNextMethodInfo RepoCommitTraverseIter signature where
overloadedMethod _ = repoCommitTraverseIterNext
#endif
foreign import ccall "ostree_repo_commit_traverse_iter_cleanup" ostree_repo_commit_traverse_iter_cleanup ::
Ptr () ->
IO ()
repoCommitTraverseIterCleanup ::
(B.CallStack.HasCallStack, MonadIO m) =>
Ptr ()
-> m ()
repoCommitTraverseIterCleanup p = liftIO $ do
ostree_repo_commit_traverse_iter_cleanup p
return ()
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type family ResolveRepoCommitTraverseIterMethod (t :: Symbol) (o :: *) :: * where
ResolveRepoCommitTraverseIterMethod "clear" o = RepoCommitTraverseIterClearMethodInfo
ResolveRepoCommitTraverseIterMethod "initCommit" o = RepoCommitTraverseIterInitCommitMethodInfo
ResolveRepoCommitTraverseIterMethod "initDirtree" o = RepoCommitTraverseIterInitDirtreeMethodInfo
ResolveRepoCommitTraverseIterMethod "next" o = RepoCommitTraverseIterNextMethodInfo
ResolveRepoCommitTraverseIterMethod "getDir" o = RepoCommitTraverseIterGetDirMethodInfo
ResolveRepoCommitTraverseIterMethod "getFile" o = RepoCommitTraverseIterGetFileMethodInfo
ResolveRepoCommitTraverseIterMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveRepoCommitTraverseIterMethod t RepoCommitTraverseIter, O.MethodInfo info RepoCommitTraverseIter p) => OL.IsLabel t (RepoCommitTraverseIter -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif