module GI.OSTree.Structs.RepoCommitModifier
(
RepoCommitModifier(..) ,
noRepoCommitModifier ,
repoCommitModifierNew ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
RepoCommitModifierRefMethodInfo ,
#endif
repoCommitModifierRef ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
RepoCommitModifierSetDevinoCacheMethodInfo,
#endif
repoCommitModifierSetDevinoCache ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
RepoCommitModifierSetSepolicyMethodInfo ,
#endif
repoCommitModifierSetSepolicy ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
RepoCommitModifierSetXattrCallbackMethodInfo,
#endif
repoCommitModifierSetXattrCallback ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
RepoCommitModifierUnrefMethodInfo ,
#endif
repoCommitModifierUnref ,
) 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.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
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 GI.GLib.Callbacks as GLib.Callbacks
import qualified GI.OSTree.Callbacks as OSTree.Callbacks
import qualified GI.OSTree.Flags as OSTree.Flags
import qualified GI.OSTree.Objects.SePolicy as OSTree.SePolicy
import qualified GI.OSTree.Structs.RepoDevInoCache as OSTree.RepoDevInoCache
newtype RepoCommitModifier = RepoCommitModifier (ManagedPtr RepoCommitModifier)
foreign import ccall "ostree_repo_commit_modifier_get_type" c_ostree_repo_commit_modifier_get_type ::
IO GType
instance BoxedObject RepoCommitModifier where
boxedType _ = c_ostree_repo_commit_modifier_get_type
noRepoCommitModifier :: Maybe RepoCommitModifier
noRepoCommitModifier = Nothing
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
instance O.HasAttributeList RepoCommitModifier
type instance O.AttributeList RepoCommitModifier = RepoCommitModifierAttributeList
type RepoCommitModifierAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "ostree_repo_commit_modifier_new" ostree_repo_commit_modifier_new ::
CUInt ->
FunPtr OSTree.Callbacks.C_RepoCommitFilter ->
Ptr () ->
FunPtr GLib.Callbacks.C_DestroyNotify ->
IO (Ptr RepoCommitModifier)
repoCommitModifierNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
[OSTree.Flags.RepoCommitModifierFlags]
-> Maybe (OSTree.Callbacks.RepoCommitFilter)
-> m RepoCommitModifier
repoCommitModifierNew flags commitFilter = liftIO $ do
let flags' = gflagsToWord flags
maybeCommitFilter <- case commitFilter of
Nothing -> return (castPtrToFunPtr nullPtr)
Just jCommitFilter -> do
jCommitFilter' <- OSTree.Callbacks.mk_RepoCommitFilter (OSTree.Callbacks.wrap_RepoCommitFilter Nothing (OSTree.Callbacks.drop_closures_RepoCommitFilter jCommitFilter))
return jCommitFilter'
let userData = castFunPtrToPtr maybeCommitFilter
let destroyNotify = safeFreeFunPtrPtr
result <- ostree_repo_commit_modifier_new flags' maybeCommitFilter userData destroyNotify
checkUnexpectedReturnNULL "repoCommitModifierNew" result
result' <- (wrapBoxed RepoCommitModifier) result
return result'
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
#endif
foreign import ccall "ostree_repo_commit_modifier_ref" ostree_repo_commit_modifier_ref ::
Ptr RepoCommitModifier ->
IO (Ptr RepoCommitModifier)
repoCommitModifierRef ::
(B.CallStack.HasCallStack, MonadIO m) =>
RepoCommitModifier
-> m RepoCommitModifier
repoCommitModifierRef modifier = liftIO $ do
modifier' <- unsafeManagedPtrGetPtr modifier
result <- ostree_repo_commit_modifier_ref modifier'
checkUnexpectedReturnNULL "repoCommitModifierRef" result
result' <- (wrapBoxed RepoCommitModifier) result
touchManagedPtr modifier
return result'
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data RepoCommitModifierRefMethodInfo
instance (signature ~ (m RepoCommitModifier), MonadIO m) => O.MethodInfo RepoCommitModifierRefMethodInfo RepoCommitModifier signature where
overloadedMethod _ = repoCommitModifierRef
#endif
foreign import ccall "ostree_repo_commit_modifier_set_devino_cache" ostree_repo_commit_modifier_set_devino_cache ::
Ptr RepoCommitModifier ->
Ptr OSTree.RepoDevInoCache.RepoDevInoCache ->
IO ()
repoCommitModifierSetDevinoCache ::
(B.CallStack.HasCallStack, MonadIO m) =>
RepoCommitModifier
-> OSTree.RepoDevInoCache.RepoDevInoCache
-> m ()
repoCommitModifierSetDevinoCache modifier cache = liftIO $ do
modifier' <- unsafeManagedPtrGetPtr modifier
cache' <- unsafeManagedPtrGetPtr cache
ostree_repo_commit_modifier_set_devino_cache modifier' cache'
touchManagedPtr modifier
touchManagedPtr cache
return ()
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data RepoCommitModifierSetDevinoCacheMethodInfo
instance (signature ~ (OSTree.RepoDevInoCache.RepoDevInoCache -> m ()), MonadIO m) => O.MethodInfo RepoCommitModifierSetDevinoCacheMethodInfo RepoCommitModifier signature where
overloadedMethod _ = repoCommitModifierSetDevinoCache
#endif
foreign import ccall "ostree_repo_commit_modifier_set_sepolicy" ostree_repo_commit_modifier_set_sepolicy ::
Ptr RepoCommitModifier ->
Ptr OSTree.SePolicy.SePolicy ->
IO ()
repoCommitModifierSetSepolicy ::
(B.CallStack.HasCallStack, MonadIO m, OSTree.SePolicy.IsSePolicy a) =>
RepoCommitModifier
-> Maybe (a)
-> m ()
repoCommitModifierSetSepolicy modifier sepolicy = liftIO $ do
modifier' <- unsafeManagedPtrGetPtr modifier
maybeSepolicy <- case sepolicy of
Nothing -> return nullPtr
Just jSepolicy -> do
jSepolicy' <- unsafeManagedPtrCastPtr jSepolicy
return jSepolicy'
ostree_repo_commit_modifier_set_sepolicy modifier' maybeSepolicy
touchManagedPtr modifier
whenJust sepolicy touchManagedPtr
return ()
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data RepoCommitModifierSetSepolicyMethodInfo
instance (signature ~ (Maybe (a) -> m ()), MonadIO m, OSTree.SePolicy.IsSePolicy a) => O.MethodInfo RepoCommitModifierSetSepolicyMethodInfo RepoCommitModifier signature where
overloadedMethod _ = repoCommitModifierSetSepolicy
#endif
foreign import ccall "ostree_repo_commit_modifier_set_xattr_callback" ostree_repo_commit_modifier_set_xattr_callback ::
Ptr RepoCommitModifier ->
FunPtr OSTree.Callbacks.C_RepoCommitModifierXattrCallback ->
FunPtr GLib.Callbacks.C_DestroyNotify ->
Ptr () ->
IO ()
repoCommitModifierSetXattrCallback ::
(B.CallStack.HasCallStack, MonadIO m) =>
RepoCommitModifier
-> OSTree.Callbacks.RepoCommitModifierXattrCallback
-> m ()
repoCommitModifierSetXattrCallback modifier callback = liftIO $ do
modifier' <- unsafeManagedPtrGetPtr modifier
callback' <- OSTree.Callbacks.mk_RepoCommitModifierXattrCallback (OSTree.Callbacks.wrap_RepoCommitModifierXattrCallback Nothing (OSTree.Callbacks.drop_closures_RepoCommitModifierXattrCallback callback))
let userData = castFunPtrToPtr callback'
let destroy = safeFreeFunPtrPtr
ostree_repo_commit_modifier_set_xattr_callback modifier' callback' destroy userData
touchManagedPtr modifier
return ()
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data RepoCommitModifierSetXattrCallbackMethodInfo
instance (signature ~ (OSTree.Callbacks.RepoCommitModifierXattrCallback -> m ()), MonadIO m) => O.MethodInfo RepoCommitModifierSetXattrCallbackMethodInfo RepoCommitModifier signature where
overloadedMethod _ = repoCommitModifierSetXattrCallback
#endif
foreign import ccall "ostree_repo_commit_modifier_unref" ostree_repo_commit_modifier_unref ::
Ptr RepoCommitModifier ->
IO ()
repoCommitModifierUnref ::
(B.CallStack.HasCallStack, MonadIO m) =>
RepoCommitModifier
-> m ()
repoCommitModifierUnref modifier = liftIO $ do
modifier' <- unsafeManagedPtrGetPtr modifier
ostree_repo_commit_modifier_unref modifier'
touchManagedPtr modifier
return ()
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data RepoCommitModifierUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo RepoCommitModifierUnrefMethodInfo RepoCommitModifier signature where
overloadedMethod _ = repoCommitModifierUnref
#endif
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
type family ResolveRepoCommitModifierMethod (t :: Symbol) (o :: *) :: * where
ResolveRepoCommitModifierMethod "ref" o = RepoCommitModifierRefMethodInfo
ResolveRepoCommitModifierMethod "unref" o = RepoCommitModifierUnrefMethodInfo
ResolveRepoCommitModifierMethod "setDevinoCache" o = RepoCommitModifierSetDevinoCacheMethodInfo
ResolveRepoCommitModifierMethod "setSepolicy" o = RepoCommitModifierSetSepolicyMethodInfo
ResolveRepoCommitModifierMethod "setXattrCallback" o = RepoCommitModifierSetXattrCallbackMethodInfo
ResolveRepoCommitModifierMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveRepoCommitModifierMethod t RepoCommitModifier, O.MethodInfo info RepoCommitModifier p) => O.IsLabelProxy t (RepoCommitModifier -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveRepoCommitModifierMethod t RepoCommitModifier, O.MethodInfo info RepoCommitModifier p) => O.IsLabel t (RepoCommitModifier -> 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
#endif