module GI.OSTree.Objects.MutableTree
(
MutableTree(..) ,
IsMutableTree ,
toMutableTree ,
noMutableTree ,
MutableTreeGetSubdirsMethodInfo ,
MutableTreeEnsureDirMethodInfo ,
mutableTreeEnsureDir ,
MutableTreeEnsureParentDirsMethodInfo ,
mutableTreeEnsureParentDirs ,
MutableTreeGetContentsChecksumMethodInfo,
mutableTreeGetContentsChecksum ,
MutableTreeGetFilesMethodInfo ,
mutableTreeGetFiles ,
MutableTreeGetMetadataChecksumMethodInfo,
mutableTreeGetMetadataChecksum ,
MutableTreeLookupMethodInfo ,
mutableTreeLookup ,
mutableTreeNew ,
MutableTreeReplaceFileMethodInfo ,
mutableTreeReplaceFile ,
MutableTreeSetContentsChecksumMethodInfo,
mutableTreeSetContentsChecksum ,
MutableTreeSetMetadataChecksumMethodInfo,
mutableTreeSetMetadataChecksum ,
MutableTreeWalkMethodInfo ,
mutableTreeWalk ,
) 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.GObject.Objects.Object as GObject.Object
newtype MutableTree = MutableTree (ManagedPtr MutableTree)
foreign import ccall "ostree_mutable_tree_get_type"
c_ostree_mutable_tree_get_type :: IO GType
instance GObject MutableTree where
gobjectType _ = c_ostree_mutable_tree_get_type
class GObject o => IsMutableTree o
#if MIN_VERSION_base(4,9,0)
instance (GObject a, O.UnknownAncestorError MutableTree a) =>
IsMutableTree a
#endif
instance IsMutableTree MutableTree
instance GObject.Object.IsObject MutableTree
toMutableTree :: IsMutableTree o => o -> IO MutableTree
toMutableTree = unsafeCastTo MutableTree
noMutableTree :: Maybe MutableTree
noMutableTree = Nothing
type family ResolveMutableTreeMethod (t :: Symbol) (o :: *) :: * where
ResolveMutableTreeMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveMutableTreeMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveMutableTreeMethod "ensureDir" o = MutableTreeEnsureDirMethodInfo
ResolveMutableTreeMethod "ensureParentDirs" o = MutableTreeEnsureParentDirsMethodInfo
ResolveMutableTreeMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveMutableTreeMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveMutableTreeMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveMutableTreeMethod "lookup" o = MutableTreeLookupMethodInfo
ResolveMutableTreeMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveMutableTreeMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveMutableTreeMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveMutableTreeMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveMutableTreeMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
ResolveMutableTreeMethod "replaceFile" o = MutableTreeReplaceFileMethodInfo
ResolveMutableTreeMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
ResolveMutableTreeMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveMutableTreeMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveMutableTreeMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveMutableTreeMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveMutableTreeMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveMutableTreeMethod "walk" o = MutableTreeWalkMethodInfo
ResolveMutableTreeMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveMutableTreeMethod "getContentsChecksum" o = MutableTreeGetContentsChecksumMethodInfo
ResolveMutableTreeMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveMutableTreeMethod "getFiles" o = MutableTreeGetFilesMethodInfo
ResolveMutableTreeMethod "getMetadataChecksum" o = MutableTreeGetMetadataChecksumMethodInfo
ResolveMutableTreeMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveMutableTreeMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveMutableTreeMethod "getSubdirs" o = MutableTreeGetSubdirsMethodInfo
ResolveMutableTreeMethod "setContentsChecksum" o = MutableTreeSetContentsChecksumMethodInfo
ResolveMutableTreeMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveMutableTreeMethod "setMetadataChecksum" o = MutableTreeSetMetadataChecksumMethodInfo
ResolveMutableTreeMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveMutableTreeMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveMutableTreeMethod t MutableTree, O.MethodInfo info MutableTree p) => O.IsLabelProxy t (MutableTree -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveMutableTreeMethod t MutableTree, O.MethodInfo info MutableTree p) => O.IsLabel t (MutableTree -> p) where
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
instance O.HasAttributeList MutableTree
type instance O.AttributeList MutableTree = MutableTreeAttributeList
type MutableTreeAttributeList = ('[ ] :: [(Symbol, *)])
type instance O.SignalList MutableTree = MutableTreeSignalList
type MutableTreeSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "ostree_mutable_tree_new" ostree_mutable_tree_new ::
IO (Ptr MutableTree)
mutableTreeNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
m MutableTree
mutableTreeNew = liftIO $ do
result <- ostree_mutable_tree_new
checkUnexpectedReturnNULL "mutableTreeNew" result
result' <- (wrapObject MutableTree) result
return result'
foreign import ccall "ostree_mutable_tree_ensure_dir" ostree_mutable_tree_ensure_dir ::
Ptr MutableTree ->
CString ->
Ptr MutableTree ->
Ptr (Ptr GError) ->
IO CInt
mutableTreeEnsureDir ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a, IsMutableTree b) =>
a
-> T.Text
-> b
-> m ()
mutableTreeEnsureDir self name outSubdir = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
name' <- textToCString name
outSubdir' <- unsafeManagedPtrCastPtr outSubdir
onException (do
_ <- propagateGError $ ostree_mutable_tree_ensure_dir self' name' outSubdir'
touchManagedPtr self
touchManagedPtr outSubdir
freeMem name'
return ()
) (do
freeMem name'
)
data MutableTreeEnsureDirMethodInfo
instance (signature ~ (T.Text -> b -> m ()), MonadIO m, IsMutableTree a, IsMutableTree b) => O.MethodInfo MutableTreeEnsureDirMethodInfo a signature where
overloadedMethod _ = mutableTreeEnsureDir
foreign import ccall "ostree_mutable_tree_ensure_parent_dirs" ostree_mutable_tree_ensure_parent_dirs ::
Ptr MutableTree ->
Ptr (GPtrArray CString) ->
CString ->
Ptr (Ptr MutableTree) ->
Ptr (Ptr GError) ->
IO CInt
mutableTreeEnsureParentDirs ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> [T.Text]
-> T.Text
-> m (MutableTree)
mutableTreeEnsureParentDirs self splitPath metadataChecksum = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
splitPath' <- mapM textToCString splitPath
splitPath'' <- packGPtrArray splitPath'
metadataChecksum' <- textToCString metadataChecksum
outParent <- allocMem :: IO (Ptr (Ptr MutableTree))
onException (do
_ <- propagateGError $ ostree_mutable_tree_ensure_parent_dirs self' splitPath'' metadataChecksum' outParent
outParent' <- peek outParent
outParent'' <- (wrapObject MutableTree) outParent'
touchManagedPtr self
mapPtrArray freeMem splitPath''
unrefPtrArray splitPath''
freeMem metadataChecksum'
freeMem outParent
return outParent''
) (do
mapPtrArray freeMem splitPath''
unrefPtrArray splitPath''
freeMem metadataChecksum'
freeMem outParent
)
data MutableTreeEnsureParentDirsMethodInfo
instance (signature ~ ([T.Text] -> T.Text -> m (MutableTree)), MonadIO m, IsMutableTree a) => O.MethodInfo MutableTreeEnsureParentDirsMethodInfo a signature where
overloadedMethod _ = mutableTreeEnsureParentDirs
foreign import ccall "ostree_mutable_tree_get_contents_checksum" ostree_mutable_tree_get_contents_checksum ::
Ptr MutableTree ->
IO CString
mutableTreeGetContentsChecksum ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> m T.Text
mutableTreeGetContentsChecksum self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_mutable_tree_get_contents_checksum self'
checkUnexpectedReturnNULL "mutableTreeGetContentsChecksum" result
result' <- cstringToText result
touchManagedPtr self
return result'
data MutableTreeGetContentsChecksumMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsMutableTree a) => O.MethodInfo MutableTreeGetContentsChecksumMethodInfo a signature where
overloadedMethod _ = mutableTreeGetContentsChecksum
foreign import ccall "ostree_mutable_tree_get_files" ostree_mutable_tree_get_files ::
Ptr MutableTree ->
IO (Ptr (GHashTable CString CString))
mutableTreeGetFiles ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> m (Map.Map T.Text T.Text)
mutableTreeGetFiles self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_mutable_tree_get_files self'
checkUnexpectedReturnNULL "mutableTreeGetFiles" result
result' <- unpackGHashTable result
let result'' = mapFirst cstringUnpackPtr result'
result''' <- mapFirstA cstringToText result''
let result'''' = mapSecond cstringUnpackPtr result'''
result''''' <- mapSecondA cstringToText result''''
let result'''''' = Map.fromList result'''''
touchManagedPtr self
return result''''''
data MutableTreeGetFilesMethodInfo
instance (signature ~ (m (Map.Map T.Text T.Text)), MonadIO m, IsMutableTree a) => O.MethodInfo MutableTreeGetFilesMethodInfo a signature where
overloadedMethod _ = mutableTreeGetFiles
foreign import ccall "ostree_mutable_tree_get_metadata_checksum" ostree_mutable_tree_get_metadata_checksum ::
Ptr MutableTree ->
IO CString
mutableTreeGetMetadataChecksum ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> m T.Text
mutableTreeGetMetadataChecksum self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_mutable_tree_get_metadata_checksum self'
checkUnexpectedReturnNULL "mutableTreeGetMetadataChecksum" result
result' <- cstringToText result
touchManagedPtr self
return result'
data MutableTreeGetMetadataChecksumMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsMutableTree a) => O.MethodInfo MutableTreeGetMetadataChecksumMethodInfo a signature where
overloadedMethod _ = mutableTreeGetMetadataChecksum
data MutableTreeGetSubdirsMethodInfo
instance (p ~ (), o ~ O.MethodResolutionFailed "getSubdirs" MutableTree) => O.MethodInfo MutableTreeGetSubdirsMethodInfo o p where
overloadedMethod _ = undefined
foreign import ccall "ostree_mutable_tree_lookup" ostree_mutable_tree_lookup ::
Ptr MutableTree ->
CString ->
CString ->
Ptr MutableTree ->
Ptr (Ptr GError) ->
IO CInt
mutableTreeLookup ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a, IsMutableTree b) =>
a
-> T.Text
-> T.Text
-> b
-> m ()
mutableTreeLookup self name outFileChecksum outSubdir = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
name' <- textToCString name
outFileChecksum' <- textToCString outFileChecksum
outSubdir' <- unsafeManagedPtrCastPtr outSubdir
onException (do
_ <- propagateGError $ ostree_mutable_tree_lookup self' name' outFileChecksum' outSubdir'
touchManagedPtr self
touchManagedPtr outSubdir
freeMem name'
freeMem outFileChecksum'
return ()
) (do
freeMem name'
freeMem outFileChecksum'
)
data MutableTreeLookupMethodInfo
instance (signature ~ (T.Text -> T.Text -> b -> m ()), MonadIO m, IsMutableTree a, IsMutableTree b) => O.MethodInfo MutableTreeLookupMethodInfo a signature where
overloadedMethod _ = mutableTreeLookup
foreign import ccall "ostree_mutable_tree_replace_file" ostree_mutable_tree_replace_file ::
Ptr MutableTree ->
CString ->
CString ->
Ptr (Ptr GError) ->
IO CInt
mutableTreeReplaceFile ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> T.Text
-> T.Text
-> m ()
mutableTreeReplaceFile self name checksum = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
name' <- textToCString name
checksum' <- textToCString checksum
onException (do
_ <- propagateGError $ ostree_mutable_tree_replace_file self' name' checksum'
touchManagedPtr self
freeMem name'
freeMem checksum'
return ()
) (do
freeMem name'
freeMem checksum'
)
data MutableTreeReplaceFileMethodInfo
instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m, IsMutableTree a) => O.MethodInfo MutableTreeReplaceFileMethodInfo a signature where
overloadedMethod _ = mutableTreeReplaceFile
foreign import ccall "ostree_mutable_tree_set_contents_checksum" ostree_mutable_tree_set_contents_checksum ::
Ptr MutableTree ->
CString ->
IO ()
mutableTreeSetContentsChecksum ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> T.Text
-> m ()
mutableTreeSetContentsChecksum self checksum = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
checksum' <- textToCString checksum
ostree_mutable_tree_set_contents_checksum self' checksum'
touchManagedPtr self
freeMem checksum'
return ()
data MutableTreeSetContentsChecksumMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsMutableTree a) => O.MethodInfo MutableTreeSetContentsChecksumMethodInfo a signature where
overloadedMethod _ = mutableTreeSetContentsChecksum
foreign import ccall "ostree_mutable_tree_set_metadata_checksum" ostree_mutable_tree_set_metadata_checksum ::
Ptr MutableTree ->
CString ->
IO ()
mutableTreeSetMetadataChecksum ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> T.Text
-> m ()
mutableTreeSetMetadataChecksum self checksum = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
checksum' <- textToCString checksum
ostree_mutable_tree_set_metadata_checksum self' checksum'
touchManagedPtr self
freeMem checksum'
return ()
data MutableTreeSetMetadataChecksumMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsMutableTree a) => O.MethodInfo MutableTreeSetMetadataChecksumMethodInfo a signature where
overloadedMethod _ = mutableTreeSetMetadataChecksum
foreign import ccall "ostree_mutable_tree_walk" ostree_mutable_tree_walk ::
Ptr MutableTree ->
Ptr (GPtrArray CString) ->
Word32 ->
Ptr (Ptr MutableTree) ->
Ptr (Ptr GError) ->
IO CInt
mutableTreeWalk ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> [T.Text]
-> Word32
-> m (MutableTree)
mutableTreeWalk self splitPath start = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
splitPath' <- mapM textToCString splitPath
splitPath'' <- packGPtrArray splitPath'
outSubdir <- allocMem :: IO (Ptr (Ptr MutableTree))
onException (do
_ <- propagateGError $ ostree_mutable_tree_walk self' splitPath'' start outSubdir
outSubdir' <- peek outSubdir
outSubdir'' <- (wrapObject MutableTree) outSubdir'
touchManagedPtr self
mapPtrArray freeMem splitPath''
unrefPtrArray splitPath''
freeMem outSubdir
return outSubdir''
) (do
mapPtrArray freeMem splitPath''
unrefPtrArray splitPath''
freeMem outSubdir
)
data MutableTreeWalkMethodInfo
instance (signature ~ ([T.Text] -> Word32 -> m (MutableTree)), MonadIO m, IsMutableTree a) => O.MethodInfo MutableTreeWalkMethodInfo a signature where
overloadedMethod _ = mutableTreeWalk