gi-ostree-1.0.8: GI/OSTree/Functions.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.OSTree.Functions
(
-- * Methods
-- ** breakHardlink #method:breakHardlink#
breakHardlink ,
-- ** checkVersion #method:checkVersion#
checkVersion ,
-- ** checksumB64FromBytes #method:checksumB64FromBytes#
checksumB64FromBytes ,
-- ** checksumB64ToBytes #method:checksumB64ToBytes#
checksumB64ToBytes ,
-- ** checksumBytesPeek #method:checksumBytesPeek#
checksumBytesPeek ,
-- ** checksumBytesPeekValidate #method:checksumBytesPeekValidate#
checksumBytesPeekValidate ,
-- ** checksumFile #method:checksumFile#
checksumFile ,
-- ** checksumFileAsync #method:checksumFileAsync#
checksumFileAsync ,
-- ** checksumFileAsyncFinish #method:checksumFileAsyncFinish#
checksumFileAsyncFinish ,
-- ** checksumFileAt #method:checksumFileAt#
checksumFileAt ,
-- ** checksumFileFromInput #method:checksumFileFromInput#
checksumFileFromInput ,
-- ** checksumFromBytes #method:checksumFromBytes#
checksumFromBytes ,
-- ** checksumFromBytesV #method:checksumFromBytesV#
checksumFromBytesV ,
-- ** checksumInplaceToBytes #method:checksumInplaceToBytes#
checksumInplaceToBytes ,
-- ** checksumToBytes #method:checksumToBytes#
checksumToBytes ,
-- ** checksumToBytesV #method:checksumToBytesV#
checksumToBytesV ,
-- ** cmd_Private__ #method:cmd_Private__#
cmd_Private__ ,
-- ** cmpChecksumBytes #method:cmpChecksumBytes#
cmpChecksumBytes ,
-- ** commitGetContentChecksum #method:commitGetContentChecksum#
commitGetContentChecksum ,
-- ** commitGetParent #method:commitGetParent#
commitGetParent ,
-- ** commitGetTimestamp #method:commitGetTimestamp#
commitGetTimestamp ,
-- ** contentFileParse #method:contentFileParse#
contentFileParse ,
-- ** contentFileParseAt #method:contentFileParseAt#
contentFileParseAt ,
-- ** contentStreamParse #method:contentStreamParse#
contentStreamParse ,
-- ** createDirectoryMetadata #method:createDirectoryMetadata#
createDirectoryMetadata ,
-- ** diffDirs #method:diffDirs#
diffDirs ,
-- ** diffDirsWithOptions #method:diffDirsWithOptions#
diffDirsWithOptions ,
-- ** diffPrint #method:diffPrint#
diffPrint ,
-- ** gpgErrorQuark #method:gpgErrorQuark#
gpgErrorQuark ,
-- ** hashObjectName #method:hashObjectName#
hashObjectName ,
-- ** metadataVariantType #method:metadataVariantType#
metadataVariantType ,
-- ** objectFromString #method:objectFromString#
objectFromString ,
-- ** objectNameDeserialize #method:objectNameDeserialize#
objectNameDeserialize ,
-- ** objectNameSerialize #method:objectNameSerialize#
objectNameSerialize ,
-- ** objectToString #method:objectToString#
objectToString ,
-- ** objectTypeFromString #method:objectTypeFromString#
objectTypeFromString ,
-- ** objectTypeToString #method:objectTypeToString#
objectTypeToString ,
-- ** parseRefspec #method:parseRefspec#
parseRefspec ,
-- ** rawFileToArchiveZ2Stream #method:rawFileToArchiveZ2Stream#
rawFileToArchiveZ2Stream ,
-- ** rawFileToArchiveZ2StreamWithOptions #method:rawFileToArchiveZ2StreamWithOptions#
rawFileToArchiveZ2StreamWithOptions ,
-- ** rawFileToContentStream #method:rawFileToContentStream#
rawFileToContentStream ,
-- ** validateChecksumString #method:validateChecksumString#
validateChecksumString ,
-- ** validateCollectionId #method:validateCollectionId#
validateCollectionId ,
-- ** validateRemoteName #method:validateRemoteName#
validateRemoteName ,
-- ** validateRev #method:validateRev#
validateRev ,
-- ** validateStructureofChecksumString #method:validateStructureofChecksumString#
validateStructureofChecksumString ,
-- ** validateStructureofCommit #method:validateStructureofCommit#
validateStructureofCommit ,
-- ** validateStructureofCsumV #method:validateStructureofCsumV#
validateStructureofCsumV ,
-- ** validateStructureofDirmeta #method:validateStructureofDirmeta#
validateStructureofDirmeta ,
-- ** validateStructureofDirtree #method:validateStructureofDirtree#
validateStructureofDirtree ,
-- ** validateStructureofFileMode #method:validateStructureofFileMode#
validateStructureofFileMode ,
-- ** validateStructureofObjtype #method:validateStructureofObjtype#
validateStructureofObjtype ,
) 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.GLib.Structs.VariantType as GLib.VariantType
import qualified GI.Gio.Callbacks as Gio.Callbacks
import qualified GI.Gio.Interfaces.AsyncResult as Gio.AsyncResult
import qualified GI.Gio.Interfaces.File as Gio.File
import qualified GI.Gio.Objects.Cancellable as Gio.Cancellable
import qualified GI.Gio.Objects.FileInfo as Gio.FileInfo
import qualified GI.Gio.Objects.InputStream as Gio.InputStream
import {-# SOURCE #-} qualified GI.OSTree.Enums as OSTree.Enums
import {-# SOURCE #-} qualified GI.OSTree.Flags as OSTree.Flags
import {-# SOURCE #-} qualified GI.OSTree.Structs.CmdPrivateVTable as OSTree.CmdPrivateVTable
import {-# SOURCE #-} qualified GI.OSTree.Structs.DiffDirsOptions as OSTree.DiffDirsOptions
import {-# SOURCE #-} qualified GI.OSTree.Structs.DiffItem as OSTree.DiffItem
-- function ostree_validate_structureof_objtype
-- Args : [Arg {argCName = "objtype", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_validate_structureof_objtype" ostree_validate_structureof_objtype ::
Word8 -> -- objtype : TBasicType TUInt8
Ptr (Ptr GError) -> -- error
IO CInt
{- |
/No description available in the introspection data./
-}
validateStructureofObjtype ::
(B.CallStack.HasCallStack, MonadIO m) =>
Word8
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
validateStructureofObjtype objtype = liftIO $ do
onException (do
_ <- propagateGError $ ostree_validate_structureof_objtype objtype
return ()
) (do
return ()
)
-- function ostree_validate_structureof_file_mode
-- Args : [Arg {argCName = "mode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A Unix filesystem mode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_validate_structureof_file_mode" ostree_validate_structureof_file_mode ::
Word32 -> -- mode : TBasicType TUInt32
Ptr (Ptr GError) -> -- error
IO CInt
{- |
/No description available in the introspection data./
-}
validateStructureofFileMode ::
(B.CallStack.HasCallStack, MonadIO m) =>
Word32
{- ^ /@mode@/: A Unix filesystem mode -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
validateStructureofFileMode mode = liftIO $ do
onException (do
_ <- propagateGError $ ostree_validate_structureof_file_mode mode
return ()
) (do
return ()
)
-- function ostree_validate_structureof_dirtree
-- Args : [Arg {argCName = "dirtree", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A dirtree object, %OSTREE_OBJECT_TYPE_DIR_TREE", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_validate_structureof_dirtree" ostree_validate_structureof_dirtree ::
Ptr GVariant -> -- dirtree : TVariant
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Use this to validate the basic structure of /@dirtree@/, independent of
any other objects it references.
-}
validateStructureofDirtree ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
{- ^ /@dirtree@/: A dirtree object, 'GI.OSTree.Enums.ObjectTypeDirTree' -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
validateStructureofDirtree dirtree = liftIO $ do
dirtree' <- unsafeManagedPtrGetPtr dirtree
onException (do
_ <- propagateGError $ ostree_validate_structureof_dirtree dirtree'
touchManagedPtr dirtree
return ()
) (do
return ()
)
-- function ostree_validate_structureof_dirmeta
-- Args : [Arg {argCName = "dirmeta", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A dirmeta object, %OSTREE_OBJECT_TYPE_DIR_META", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_validate_structureof_dirmeta" ostree_validate_structureof_dirmeta ::
Ptr GVariant -> -- dirmeta : TVariant
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Use this to validate the basic structure of /@dirmeta@/.
-}
validateStructureofDirmeta ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
{- ^ /@dirmeta@/: A dirmeta object, 'GI.OSTree.Enums.ObjectTypeDirMeta' -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
validateStructureofDirmeta dirmeta = liftIO $ do
dirmeta' <- unsafeManagedPtrGetPtr dirmeta
onException (do
_ <- propagateGError $ ostree_validate_structureof_dirmeta dirmeta'
touchManagedPtr dirmeta
return ()
) (do
return ()
)
-- function ostree_validate_structureof_csum_v
-- Args : [Arg {argCName = "checksum", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GVariant of type \"ay\"", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_validate_structureof_csum_v" ostree_validate_structureof_csum_v ::
Ptr GVariant -> -- checksum : TVariant
Ptr (Ptr GError) -> -- error
IO CInt
{- |
/No description available in the introspection data./
-}
validateStructureofCsumV ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
{- ^ /@checksum@/: a 'GVariant' of type \"ay\" -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
validateStructureofCsumV checksum = liftIO $ do
checksum' <- unsafeManagedPtrGetPtr checksum
onException (do
_ <- propagateGError $ ostree_validate_structureof_csum_v checksum'
touchManagedPtr checksum
return ()
) (do
return ()
)
-- function ostree_validate_structureof_commit
-- Args : [Arg {argCName = "commit", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A commit object, %OSTREE_OBJECT_TYPE_COMMIT", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_validate_structureof_commit" ostree_validate_structureof_commit ::
Ptr GVariant -> -- commit : TVariant
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Use this to validate the basic structure of /@commit@/, independent of
any other objects it references.
-}
validateStructureofCommit ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
{- ^ /@commit@/: A commit object, 'GI.OSTree.Enums.ObjectTypeCommit' -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
validateStructureofCommit commit = liftIO $ do
commit' <- unsafeManagedPtrGetPtr commit
onException (do
_ <- propagateGError $ ostree_validate_structureof_commit commit'
touchManagedPtr commit
return ()
) (do
return ()
)
-- function ostree_validate_structureof_checksum_string
-- Args : [Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an ASCII string", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_validate_structureof_checksum_string" ostree_validate_structureof_checksum_string ::
CString -> -- checksum : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO CInt
{- |
/No description available in the introspection data./
-}
validateStructureofChecksumString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@checksum@/: an ASCII string -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
validateStructureofChecksumString checksum = liftIO $ do
checksum' <- textToCString checksum
onException (do
_ <- propagateGError $ ostree_validate_structureof_checksum_string checksum'
freeMem checksum'
return ()
) (do
freeMem checksum'
)
-- function ostree_validate_rev
-- Args : [Arg {argCName = "rev", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A revision string", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_validate_rev" ostree_validate_rev ::
CString -> -- rev : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO CInt
{- |
/No description available in the introspection data./
-}
validateRev ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@rev@/: A revision string -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
validateRev rev = liftIO $ do
rev' <- textToCString rev
onException (do
_ <- propagateGError $ ostree_validate_rev rev'
freeMem rev'
return ()
) (do
freeMem rev'
)
-- function ostree_validate_remote_name
-- Args : [Arg {argCName = "remote_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A remote name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_validate_remote_name" ostree_validate_remote_name ::
CString -> -- remote_name : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO CInt
{- |
/No description available in the introspection data./
/Since: 2017.8/
-}
validateRemoteName ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@remoteName@/: A remote name -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
validateRemoteName remoteName = liftIO $ do
remoteName' <- textToCString remoteName
onException (do
_ <- propagateGError $ ostree_validate_remote_name remoteName'
freeMem remoteName'
return ()
) (do
freeMem remoteName'
)
-- function ostree_validate_collection_id
-- Args : [Arg {argCName = "collection_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A collection ID", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_validate_collection_id" ostree_validate_collection_id ::
CString -> -- collection_id : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Check whether the given /@collectionId@/ is valid. Return an error if it is
invalid or 'Nothing'.
Valid collection IDs are reverse DNS names:
* They are composed of 1 or more elements separated by a period (@.@) character.
All elements must contain at least one character.
* Each element must only contain the ASCII characters @[A-Z][a-z][0-9]_@ and must not
begin with a digit.
* They must contain at least one @.@ (period) character (and thus at least two elements).
* They must not begin with a @.@ (period) character.
* They must not exceed 255 characters in length.
(This makes their format identical to D-Bus interface names, for consistency.)
/Since: 2018.6/
-}
validateCollectionId ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (T.Text)
{- ^ /@collectionId@/: A collection ID -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
validateCollectionId collectionId = liftIO $ do
maybeCollectionId <- case collectionId of
Nothing -> return nullPtr
Just jCollectionId -> do
jCollectionId' <- textToCString jCollectionId
return jCollectionId'
onException (do
_ <- propagateGError $ ostree_validate_collection_id maybeCollectionId
freeMem maybeCollectionId
return ()
) (do
freeMem maybeCollectionId
)
-- function ostree_validate_checksum_string
-- Args : [Arg {argCName = "sha256", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "SHA256 hex string", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_validate_checksum_string" ostree_validate_checksum_string ::
CString -> -- sha256 : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Use this function to see if input strings are checksums.
-}
validateChecksumString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@sha256@/: SHA256 hex string -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
validateChecksumString sha256 = liftIO $ do
sha256' <- textToCString sha256
onException (do
_ <- propagateGError $ ostree_validate_checksum_string sha256'
freeMem sha256'
return ()
) (do
freeMem sha256'
)
-- function ostree_raw_file_to_content_stream
-- Args : [Arg {argCName = "input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "File raw content stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file_info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A file info", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "xattrs", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Optional extended attributes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Serialized object stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Length of stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_raw_file_to_content_stream" ostree_raw_file_to_content_stream ::
Ptr Gio.InputStream.InputStream -> -- input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Ptr Gio.FileInfo.FileInfo -> -- file_info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
Ptr GVariant -> -- xattrs : TVariant
Ptr (Ptr Gio.InputStream.InputStream) -> -- out_input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Ptr Word64 -> -- out_length : TBasicType TUInt64
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Convert from a \"bare\" file representation into an
OSTREE_OBJECT_TYPE_FILE stream. This is a fundamental operation
for writing data to an 'GI.OSTree.Objects.Repo.Repo'.
-}
rawFileToContentStream ::
(B.CallStack.HasCallStack, MonadIO m, Gio.InputStream.IsInputStream a, Gio.FileInfo.IsFileInfo b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@input@/: File raw content stream -}
-> b
{- ^ /@fileInfo@/: A file info -}
-> Maybe (GVariant)
{- ^ /@xattrs@/: Optional extended attributes -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m ((Gio.InputStream.InputStream, Word64))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
rawFileToContentStream input fileInfo xattrs cancellable = liftIO $ do
input' <- unsafeManagedPtrCastPtr input
fileInfo' <- unsafeManagedPtrCastPtr fileInfo
maybeXattrs <- case xattrs of
Nothing -> return nullPtr
Just jXattrs -> do
jXattrs' <- unsafeManagedPtrGetPtr jXattrs
return jXattrs'
outInput <- allocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
outLength <- allocMem :: IO (Ptr Word64)
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_raw_file_to_content_stream input' fileInfo' maybeXattrs outInput outLength maybeCancellable
outInput' <- peek outInput
outInput'' <- (wrapObject Gio.InputStream.InputStream) outInput'
outLength' <- peek outLength
touchManagedPtr input
touchManagedPtr fileInfo
whenJust xattrs touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem outInput
freeMem outLength
return (outInput'', outLength')
) (do
freeMem outInput
freeMem outLength
)
-- function ostree_raw_file_to_archive_z2_stream_with_options
-- Args : [Arg {argCName = "input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "File raw content stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file_info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A file info", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "xattrs", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Optional extended attributes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A GVariant `a{sv}` with an extensible set of flags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Serialized object stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_raw_file_to_archive_z2_stream_with_options" ostree_raw_file_to_archive_z2_stream_with_options ::
Ptr Gio.InputStream.InputStream -> -- input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Ptr Gio.FileInfo.FileInfo -> -- file_info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
Ptr GVariant -> -- xattrs : TVariant
Ptr GVariant -> -- options : TVariant
Ptr (Ptr Gio.InputStream.InputStream) -> -- out_input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Like 'GI.OSTree.Functions.rawFileToArchiveZ2Stream', but supports an extensible set
of flags. The following flags are currently defined:
* @compression-level@ (@i@): Level of compression to use, 0–9, with 0 being
the least compression, and \<0 giving the default level (currently 6).
/Since: 2017.3/
-}
rawFileToArchiveZ2StreamWithOptions ::
(B.CallStack.HasCallStack, MonadIO m, Gio.InputStream.IsInputStream a, Gio.FileInfo.IsFileInfo b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@input@/: File raw content stream -}
-> b
{- ^ /@fileInfo@/: A file info -}
-> Maybe (GVariant)
{- ^ /@xattrs@/: Optional extended attributes -}
-> Maybe (GVariant)
{- ^ /@options@/: A GVariant @a{sv}@ with an extensible set of flags -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m (Gio.InputStream.InputStream)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
rawFileToArchiveZ2StreamWithOptions input fileInfo xattrs options cancellable = liftIO $ do
input' <- unsafeManagedPtrCastPtr input
fileInfo' <- unsafeManagedPtrCastPtr fileInfo
maybeXattrs <- case xattrs of
Nothing -> return nullPtr
Just jXattrs -> do
jXattrs' <- unsafeManagedPtrGetPtr jXattrs
return jXattrs'
maybeOptions <- case options of
Nothing -> return nullPtr
Just jOptions -> do
jOptions' <- unsafeManagedPtrGetPtr jOptions
return jOptions'
outInput <- allocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_raw_file_to_archive_z2_stream_with_options input' fileInfo' maybeXattrs maybeOptions outInput maybeCancellable
outInput' <- peek outInput
outInput'' <- (wrapObject Gio.InputStream.InputStream) outInput'
touchManagedPtr input
touchManagedPtr fileInfo
whenJust xattrs touchManagedPtr
whenJust options touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem outInput
return outInput''
) (do
freeMem outInput
)
-- function ostree_raw_file_to_archive_z2_stream
-- Args : [Arg {argCName = "input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "File raw content stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file_info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A file info", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "xattrs", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Optional extended attributes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Serialized object stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_raw_file_to_archive_z2_stream" ostree_raw_file_to_archive_z2_stream ::
Ptr Gio.InputStream.InputStream -> -- input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Ptr Gio.FileInfo.FileInfo -> -- file_info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
Ptr GVariant -> -- xattrs : TVariant
Ptr (Ptr Gio.InputStream.InputStream) -> -- out_input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Convert from a \"bare\" file representation into an
OSTREE_OBJECT_TYPE_FILE stream suitable for ostree pull.
-}
rawFileToArchiveZ2Stream ::
(B.CallStack.HasCallStack, MonadIO m, Gio.InputStream.IsInputStream a, Gio.FileInfo.IsFileInfo b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@input@/: File raw content stream -}
-> b
{- ^ /@fileInfo@/: A file info -}
-> Maybe (GVariant)
{- ^ /@xattrs@/: Optional extended attributes -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m (Gio.InputStream.InputStream)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
rawFileToArchiveZ2Stream input fileInfo xattrs cancellable = liftIO $ do
input' <- unsafeManagedPtrCastPtr input
fileInfo' <- unsafeManagedPtrCastPtr fileInfo
maybeXattrs <- case xattrs of
Nothing -> return nullPtr
Just jXattrs -> do
jXattrs' <- unsafeManagedPtrGetPtr jXattrs
return jXattrs'
outInput <- allocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_raw_file_to_archive_z2_stream input' fileInfo' maybeXattrs outInput maybeCancellable
outInput' <- peek outInput
outInput'' <- (wrapObject Gio.InputStream.InputStream) outInput'
touchManagedPtr input
touchManagedPtr fileInfo
whenJust xattrs touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem outInput
return outInput''
) (do
freeMem outInput
)
-- function ostree_parse_refspec
-- Args : [Arg {argCName = "refspec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A \"refspec\" string", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_remote", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Return location for the remote name,\n or %NULL if the refspec refs to a local ref", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_ref", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Return location for the ref name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_parse_refspec" ostree_parse_refspec ::
CString -> -- refspec : TBasicType TUTF8
Ptr CString -> -- out_remote : TBasicType TUTF8
Ptr CString -> -- out_ref : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Split a refspec like @gnome-ostree:gnome-ostree\/buildmaster@ or just
@gnome-ostree\/buildmaster@ into two parts. In the first case, /@outRemote@/
will be set to @gnome-ostree@, and /@outRef@/ to @gnome-ostree\/buildmaster@.
In the second case (a local ref), /@outRemote@/ will be 'Nothing', and /@outRef@/
will be @gnome-ostree\/buildmaster@. In both cases, 'True' will be returned.
-}
parseRefspec ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@refspec@/: A \"refspec\" string -}
-> m ((Maybe T.Text, T.Text))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
parseRefspec refspec = liftIO $ do
refspec' <- textToCString refspec
outRemote <- allocMem :: IO (Ptr CString)
outRef <- allocMem :: IO (Ptr CString)
onException (do
_ <- propagateGError $ ostree_parse_refspec refspec' outRemote outRef
outRemote' <- peek outRemote
maybeOutRemote' <- convertIfNonNull outRemote' $ \outRemote'' -> do
outRemote''' <- cstringToText outRemote''
return outRemote'''
freeMem outRemote'
outRef' <- peek outRef
outRef'' <- cstringToText outRef'
freeMem outRef'
freeMem refspec'
freeMem outRemote
freeMem outRef
return (maybeOutRemote', outRef'')
) (do
freeMem refspec'
freeMem outRemote
freeMem outRef
)
-- function ostree_object_type_to_string
-- Args : [Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeObjectType", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_object_type_to_string" ostree_object_type_to_string ::
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
IO CString
{- |
Serialize /@objtype@/ to a string; this is used for file extensions.
-}
objectTypeToString ::
(B.CallStack.HasCallStack, MonadIO m) =>
OSTree.Enums.ObjectType
{- ^ /@objtype@/: an 'GI.OSTree.Enums.ObjectType' -}
-> m T.Text
objectTypeToString objtype = liftIO $ do
let objtype' = (fromIntegral . fromEnum) objtype
result <- ostree_object_type_to_string objtype'
checkUnexpectedReturnNULL "objectTypeToString" result
result' <- cstringToText result
return result'
-- function ostree_object_type_from_string
-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A stringified version of #OstreeObjectType", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "ObjectType"}))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_object_type_from_string" ostree_object_type_from_string ::
CString -> -- str : TBasicType TUTF8
IO CUInt
{- |
The reverse of 'GI.OSTree.Functions.objectTypeToString'.
-}
objectTypeFromString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@str@/: A stringified version of 'GI.OSTree.Enums.ObjectType' -}
-> m OSTree.Enums.ObjectType
objectTypeFromString str = liftIO $ do
str' <- textToCString str
result <- ostree_object_type_from_string str'
let result' = (toEnum . fromIntegral) result
freeMem str'
return result'
-- function ostree_object_to_string
-- Args : [Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An ASCII checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_object_to_string" ostree_object_to_string ::
CString -> -- checksum : TBasicType TUTF8
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
IO CString
{- |
/No description available in the introspection data./
-}
objectToString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@checksum@/: An ASCII checksum -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> m T.Text
{- ^ __Returns:__ A string containing both /@checksum@/ and a stringifed version of /@objtype@/ -}
objectToString checksum objtype = liftIO $ do
checksum' <- textToCString checksum
let objtype' = (fromIntegral . fromEnum) objtype
result <- ostree_object_to_string checksum' objtype'
checkUnexpectedReturnNULL "objectToString" result
result' <- cstringToText result
freeMem result
freeMem checksum'
return result'
-- function ostree_object_name_serialize
-- Args : [Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An ASCII checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just TVariant
-- throws : False
-- Skip return : False
foreign import ccall "ostree_object_name_serialize" ostree_object_name_serialize ::
CString -> -- checksum : TBasicType TUTF8
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
IO (Ptr GVariant)
{- |
/No description available in the introspection data./
-}
objectNameSerialize ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@checksum@/: An ASCII checksum -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: An object type -}
-> m GVariant
{- ^ __Returns:__ A new floating 'GVariant' containing checksum string and objtype -}
objectNameSerialize checksum objtype = liftIO $ do
checksum' <- textToCString checksum
let objtype' = (fromIntegral . fromEnum) objtype
result <- ostree_object_name_serialize checksum' objtype'
checkUnexpectedReturnNULL "objectNameSerialize" result
result' <- B.GVariant.newGVariantFromPtr result
freeMem checksum'
return result'
-- function ostree_object_name_deserialize
-- Args : [Arg {argCName = "variant", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GVariant of type (su)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_checksum", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Pointer into string memory of @variant with checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Return object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_object_name_deserialize" ostree_object_name_deserialize ::
Ptr GVariant -> -- variant : TVariant
Ptr CString -> -- out_checksum : TBasicType TUTF8
Ptr CUInt -> -- out_objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
IO ()
{- |
Reverse 'GI.OSTree.Functions.objectNameSerialize'. Note that /@outChecksum@/ is
only valid for the lifetime of /@variant@/, and must not be freed.
-}
objectNameDeserialize ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
{- ^ /@variant@/: A 'GVariant' of type (su) -}
-> m ((T.Text, OSTree.Enums.ObjectType))
objectNameDeserialize variant = liftIO $ do
variant' <- unsafeManagedPtrGetPtr variant
outChecksum <- allocMem :: IO (Ptr CString)
outObjtype <- allocMem :: IO (Ptr CUInt)
ostree_object_name_deserialize variant' outChecksum outObjtype
outChecksum' <- peek outChecksum
outChecksum'' <- cstringToText outChecksum'
outObjtype' <- peek outObjtype
let outObjtype'' = (toEnum . fromIntegral) outObjtype'
touchManagedPtr variant
freeMem outChecksum
freeMem outObjtype
return (outChecksum'', outObjtype'')
-- function ostree_object_from_string
-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An ASCII checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_checksum", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Parsed checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Parsed object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_object_from_string" ostree_object_from_string ::
CString -> -- str : TBasicType TUTF8
Ptr CString -> -- out_checksum : TBasicType TUTF8
Ptr CUInt -> -- out_objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
IO ()
{- |
Reverse 'GI.OSTree.Functions.objectToString'.
-}
objectFromString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@str@/: An ASCII checksum -}
-> m ((T.Text, OSTree.Enums.ObjectType))
objectFromString str = liftIO $ do
str' <- textToCString str
outChecksum <- allocMem :: IO (Ptr CString)
outObjtype <- allocMem :: IO (Ptr CUInt)
ostree_object_from_string str' outChecksum outObjtype
outChecksum' <- peek outChecksum
outChecksum'' <- cstringToText outChecksum'
freeMem outChecksum'
outObjtype' <- peek outObjtype
let outObjtype'' = (toEnum . fromIntegral) outObjtype'
freeMem str'
freeMem outChecksum
freeMem outObjtype
return (outChecksum'', outObjtype'')
-- function ostree_metadata_variant_type
-- Args : [Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "GLib", name = "VariantType"}))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_metadata_variant_type" ostree_metadata_variant_type ::
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
IO (Ptr GLib.VariantType.VariantType)
{- |
/No description available in the introspection data./
-}
metadataVariantType ::
(B.CallStack.HasCallStack, MonadIO m) =>
OSTree.Enums.ObjectType
-> m GLib.VariantType.VariantType
metadataVariantType objtype = liftIO $ do
let objtype' = (fromIntegral . fromEnum) objtype
result <- ostree_metadata_variant_type objtype'
checkUnexpectedReturnNULL "metadataVariantType" result
result' <- (newBoxed GLib.VariantType.VariantType) result
return result'
-- function ostree_hash_object_name
-- Args : [Arg {argCName = "a", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A #GVariant containing a serialized object", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_hash_object_name" ostree_hash_object_name ::
Ptr () -> -- a : TBasicType TPtr
IO Word32
{- |
Use this function with 'GI.GLib.Structs.HashTable.HashTable' and 'GI.OSTree.Functions.objectNameSerialize'.
-}
hashObjectName ::
(B.CallStack.HasCallStack, MonadIO m) =>
Ptr ()
{- ^ /@a@/: A 'GVariant' containing a serialized object -}
-> m Word32
hashObjectName a = liftIO $ do
result <- ostree_hash_object_name a
return result
-- function ostree_gpg_error_quark
-- Args : []
-- Lengths : []
-- returnType : Just (TBasicType TUInt32)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_gpg_error_quark" ostree_gpg_error_quark ::
IO Word32
{- |
/No description available in the introspection data./
-}
gpgErrorQuark ::
(B.CallStack.HasCallStack, MonadIO m) =>
m Word32
gpgErrorQuark = liftIO $ do
result <- ostree_gpg_error_quark
return result
-- function ostree_diff_print
-- Args : [Arg {argCName = "a", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "First directory path", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "First directory path", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modified", argType = TPtrArray (TInterface (Name {namespace = "OSTree", name = "DiffItem"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Modified files", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "removed", argType = TPtrArray (TInterface (Name {namespace = "Gio", name = "File"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Removed files", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "added", argType = TPtrArray (TInterface (Name {namespace = "Gio", name = "File"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Added files", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_diff_print" ostree_diff_print ::
Ptr Gio.File.File -> -- a : TInterface (Name {namespace = "Gio", name = "File"})
Ptr Gio.File.File -> -- b : TInterface (Name {namespace = "Gio", name = "File"})
Ptr (GPtrArray (Ptr OSTree.DiffItem.DiffItem)) -> -- modified : TPtrArray (TInterface (Name {namespace = "OSTree", name = "DiffItem"}))
Ptr (GPtrArray (Ptr Gio.File.File)) -> -- removed : TPtrArray (TInterface (Name {namespace = "Gio", name = "File"}))
Ptr (GPtrArray (Ptr Gio.File.File)) -> -- added : TPtrArray (TInterface (Name {namespace = "Gio", name = "File"}))
IO ()
{- |
Print the contents of a diff to stdout.
-}
diffPrint ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.File.IsFile b) =>
a
{- ^ /@a@/: First directory path -}
-> b
{- ^ /@b@/: First directory path -}
-> [OSTree.DiffItem.DiffItem]
{- ^ /@modified@/: Modified files -}
-> [Gio.File.File]
{- ^ /@removed@/: Removed files -}
-> [Gio.File.File]
{- ^ /@added@/: Added files -}
-> m ()
diffPrint a b modified removed added = liftIO $ do
a' <- unsafeManagedPtrCastPtr a
b' <- unsafeManagedPtrCastPtr b
modified' <- mapM unsafeManagedPtrGetPtr modified
modified'' <- packGPtrArray modified'
removed' <- mapM unsafeManagedPtrCastPtr removed
removed'' <- packGPtrArray removed'
added' <- mapM unsafeManagedPtrCastPtr added
added'' <- packGPtrArray added'
ostree_diff_print a' b' modified'' removed'' added''
touchManagedPtr a
touchManagedPtr b
mapM_ touchManagedPtr modified
mapM_ touchManagedPtr removed
mapM_ touchManagedPtr added
unrefPtrArray modified''
unrefPtrArray removed''
unrefPtrArray added''
return ()
-- function ostree_diff_dirs_with_options
-- Args : [Arg {argCName = "flags", argType = TInterface (Name {namespace = "OSTree", name = "DiffFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Flags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "a", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "First directory path, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "First directory path", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modified", argType = TPtrArray (TInterface (Name {namespace = "OSTree", name = "DiffItem"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Modified files", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "removed", argType = TPtrArray (TInterface (Name {namespace = "Gio", name = "File"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Removed files", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "added", argType = TPtrArray (TInterface (Name {namespace = "Gio", name = "File"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Added files", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface (Name {namespace = "OSTree", name = "DiffDirsOptions"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Options", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_diff_dirs_with_options" ostree_diff_dirs_with_options ::
CUInt -> -- flags : TInterface (Name {namespace = "OSTree", name = "DiffFlags"})
Ptr Gio.File.File -> -- a : TInterface (Name {namespace = "Gio", name = "File"})
Ptr Gio.File.File -> -- b : TInterface (Name {namespace = "Gio", name = "File"})
Ptr (GPtrArray (Ptr OSTree.DiffItem.DiffItem)) -> -- modified : TPtrArray (TInterface (Name {namespace = "OSTree", name = "DiffItem"}))
Ptr (GPtrArray (Ptr Gio.File.File)) -> -- removed : TPtrArray (TInterface (Name {namespace = "Gio", name = "File"}))
Ptr (GPtrArray (Ptr Gio.File.File)) -> -- added : TPtrArray (TInterface (Name {namespace = "Gio", name = "File"}))
Ptr OSTree.DiffDirsOptions.DiffDirsOptions -> -- options : TInterface (Name {namespace = "OSTree", name = "DiffDirsOptions"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Compute the difference between directory /@a@/ and /@b@/ as 3 separate
sets of 'GI.OSTree.Structs.DiffItem.DiffItem' in /@modified@/, /@removed@/, and /@added@/.
-}
diffDirsWithOptions ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.File.IsFile b, Gio.Cancellable.IsCancellable c) =>
[OSTree.Flags.DiffFlags]
{- ^ /@flags@/: Flags -}
-> a
{- ^ /@a@/: First directory path, or 'Nothing' -}
-> b
{- ^ /@b@/: First directory path -}
-> [OSTree.DiffItem.DiffItem]
{- ^ /@modified@/: Modified files -}
-> [Gio.File.File]
{- ^ /@removed@/: Removed files -}
-> [Gio.File.File]
{- ^ /@added@/: Added files -}
-> Maybe (OSTree.DiffDirsOptions.DiffDirsOptions)
{- ^ /@options@/: Options -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
diffDirsWithOptions flags a b modified removed added options cancellable = liftIO $ do
let flags' = gflagsToWord flags
a' <- unsafeManagedPtrCastPtr a
b' <- unsafeManagedPtrCastPtr b
modified' <- mapM unsafeManagedPtrGetPtr modified
modified'' <- packGPtrArray modified'
removed' <- mapM unsafeManagedPtrCastPtr removed
removed'' <- packGPtrArray removed'
added' <- mapM unsafeManagedPtrCastPtr added
added'' <- packGPtrArray added'
maybeOptions <- case options of
Nothing -> return nullPtr
Just jOptions -> do
jOptions' <- unsafeManagedPtrGetPtr jOptions
return jOptions'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_diff_dirs_with_options flags' a' b' modified'' removed'' added'' maybeOptions maybeCancellable
touchManagedPtr a
touchManagedPtr b
mapM_ touchManagedPtr modified
mapM_ touchManagedPtr removed
mapM_ touchManagedPtr added
whenJust options touchManagedPtr
whenJust cancellable touchManagedPtr
unrefPtrArray modified''
unrefPtrArray removed''
unrefPtrArray added''
return ()
) (do
unrefPtrArray modified''
unrefPtrArray removed''
unrefPtrArray added''
)
-- function ostree_diff_dirs
-- Args : [Arg {argCName = "flags", argType = TInterface (Name {namespace = "OSTree", name = "DiffFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Flags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "a", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "First directory path, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "First directory path", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modified", argType = TPtrArray (TInterface (Name {namespace = "OSTree", name = "DiffItem"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Modified files", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "removed", argType = TPtrArray (TInterface (Name {namespace = "Gio", name = "File"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Removed files", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "added", argType = TPtrArray (TInterface (Name {namespace = "Gio", name = "File"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Added files", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_diff_dirs" ostree_diff_dirs ::
CUInt -> -- flags : TInterface (Name {namespace = "OSTree", name = "DiffFlags"})
Ptr Gio.File.File -> -- a : TInterface (Name {namespace = "Gio", name = "File"})
Ptr Gio.File.File -> -- b : TInterface (Name {namespace = "Gio", name = "File"})
Ptr (GPtrArray (Ptr OSTree.DiffItem.DiffItem)) -> -- modified : TPtrArray (TInterface (Name {namespace = "OSTree", name = "DiffItem"}))
Ptr (GPtrArray (Ptr Gio.File.File)) -> -- removed : TPtrArray (TInterface (Name {namespace = "Gio", name = "File"}))
Ptr (GPtrArray (Ptr Gio.File.File)) -> -- added : TPtrArray (TInterface (Name {namespace = "Gio", name = "File"}))
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Compute the difference between directory /@a@/ and /@b@/ as 3 separate
sets of 'GI.OSTree.Structs.DiffItem.DiffItem' in /@modified@/, /@removed@/, and /@added@/.
-}
diffDirs ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.File.IsFile b, Gio.Cancellable.IsCancellable c) =>
[OSTree.Flags.DiffFlags]
{- ^ /@flags@/: Flags -}
-> a
{- ^ /@a@/: First directory path, or 'Nothing' -}
-> b
{- ^ /@b@/: First directory path -}
-> [OSTree.DiffItem.DiffItem]
{- ^ /@modified@/: Modified files -}
-> [Gio.File.File]
{- ^ /@removed@/: Removed files -}
-> [Gio.File.File]
{- ^ /@added@/: Added files -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
diffDirs flags a b modified removed added cancellable = liftIO $ do
let flags' = gflagsToWord flags
a' <- unsafeManagedPtrCastPtr a
b' <- unsafeManagedPtrCastPtr b
modified' <- mapM unsafeManagedPtrGetPtr modified
modified'' <- packGPtrArray modified'
removed' <- mapM unsafeManagedPtrCastPtr removed
removed'' <- packGPtrArray removed'
added' <- mapM unsafeManagedPtrCastPtr added
added'' <- packGPtrArray added'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_diff_dirs flags' a' b' modified'' removed'' added'' maybeCancellable
touchManagedPtr a
touchManagedPtr b
mapM_ touchManagedPtr modified
mapM_ touchManagedPtr removed
mapM_ touchManagedPtr added
whenJust cancellable touchManagedPtr
unrefPtrArray modified''
unrefPtrArray removed''
unrefPtrArray added''
return ()
) (do
unrefPtrArray modified''
unrefPtrArray removed''
unrefPtrArray added''
)
-- function ostree_create_directory_metadata
-- Args : [Arg {argCName = "dir_info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo containing directory information", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "xattrs", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Optional extended attributes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just TVariant
-- throws : False
-- Skip return : False
foreign import ccall "ostree_create_directory_metadata" ostree_create_directory_metadata ::
Ptr Gio.FileInfo.FileInfo -> -- dir_info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
Ptr GVariant -> -- xattrs : TVariant
IO (Ptr GVariant)
{- |
/No description available in the introspection data./
-}
createDirectoryMetadata ::
(B.CallStack.HasCallStack, MonadIO m, Gio.FileInfo.IsFileInfo a) =>
a
{- ^ /@dirInfo@/: a 'GI.Gio.Objects.FileInfo.FileInfo' containing directory information -}
-> Maybe (GVariant)
{- ^ /@xattrs@/: Optional extended attributes -}
-> m GVariant
{- ^ __Returns:__ A new 'GVariant' containing 'GI.OSTree.Enums.ObjectTypeDirMeta' -}
createDirectoryMetadata dirInfo xattrs = liftIO $ do
dirInfo' <- unsafeManagedPtrCastPtr dirInfo
maybeXattrs <- case xattrs of
Nothing -> return nullPtr
Just jXattrs -> do
jXattrs' <- unsafeManagedPtrGetPtr jXattrs
return jXattrs'
result <- ostree_create_directory_metadata dirInfo' maybeXattrs
checkUnexpectedReturnNULL "createDirectoryMetadata" result
result' <- B.GVariant.wrapGVariantPtr result
touchManagedPtr dirInfo
whenJust xattrs touchManagedPtr
return result'
-- function ostree_content_stream_parse
-- Args : [Arg {argCName = "compressed", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Whether or not the stream is zlib-compressed", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object content stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "input_length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Length of stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "trusted", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "If %TRUE, assume the content has been validated", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The raw file content stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_file_info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Normal metadata", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_xattrs", argType = TVariant, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Extended attributes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_content_stream_parse" ostree_content_stream_parse ::
CInt -> -- compressed : TBasicType TBoolean
Ptr Gio.InputStream.InputStream -> -- input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Word64 -> -- input_length : TBasicType TUInt64
CInt -> -- trusted : TBasicType TBoolean
Ptr (Ptr Gio.InputStream.InputStream) -> -- out_input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Ptr (Ptr Gio.FileInfo.FileInfo) -> -- out_file_info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
Ptr (Ptr GVariant) -> -- out_xattrs : TVariant
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
The reverse of 'GI.OSTree.Functions.rawFileToContentStream'; this function
converts an object content stream back into components.
-}
contentStreamParse ::
(B.CallStack.HasCallStack, MonadIO m, Gio.InputStream.IsInputStream a, Gio.Cancellable.IsCancellable b) =>
Bool
{- ^ /@compressed@/: Whether or not the stream is zlib-compressed -}
-> a
{- ^ /@input@/: Object content stream -}
-> Word64
{- ^ /@inputLength@/: Length of stream -}
-> Bool
{- ^ /@trusted@/: If 'True', assume the content has been validated -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ((Gio.InputStream.InputStream, Gio.FileInfo.FileInfo, GVariant))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
contentStreamParse compressed input inputLength trusted cancellable = liftIO $ do
let compressed' = (fromIntegral . fromEnum) compressed
input' <- unsafeManagedPtrCastPtr input
let trusted' = (fromIntegral . fromEnum) trusted
outInput <- allocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
outFileInfo <- allocMem :: IO (Ptr (Ptr Gio.FileInfo.FileInfo))
outXattrs <- allocMem :: IO (Ptr (Ptr GVariant))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_content_stream_parse compressed' input' inputLength trusted' outInput outFileInfo outXattrs maybeCancellable
outInput' <- peek outInput
outInput'' <- (wrapObject Gio.InputStream.InputStream) outInput'
outFileInfo' <- peek outFileInfo
outFileInfo'' <- (wrapObject Gio.FileInfo.FileInfo) outFileInfo'
outXattrs' <- peek outXattrs
outXattrs'' <- B.GVariant.wrapGVariantPtr outXattrs'
touchManagedPtr input
whenJust cancellable touchManagedPtr
freeMem outInput
freeMem outFileInfo
freeMem outXattrs
return (outInput'', outFileInfo'', outXattrs'')
) (do
freeMem outInput
freeMem outFileInfo
freeMem outXattrs
)
-- function ostree_content_file_parse_at
-- Args : [Arg {argCName = "compressed", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Whether or not the stream is zlib-compressed", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parent_dfd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Directory file descriptor", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Subpath", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "trusted", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "If %TRUE, assume the content has been validated", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The raw file content stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_file_info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Normal metadata", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_xattrs", argType = TVariant, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Extended attributes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_content_file_parse_at" ostree_content_file_parse_at ::
CInt -> -- compressed : TBasicType TBoolean
Int32 -> -- parent_dfd : TBasicType TInt
CString -> -- path : TBasicType TUTF8
CInt -> -- trusted : TBasicType TBoolean
Ptr (Ptr Gio.InputStream.InputStream) -> -- out_input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Ptr (Ptr Gio.FileInfo.FileInfo) -> -- out_file_info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
Ptr (Ptr GVariant) -> -- out_xattrs : TVariant
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
A thin wrapper for 'GI.OSTree.Functions.contentStreamParse'; this function
converts an object content stream back into components.
-}
contentFileParseAt ::
(B.CallStack.HasCallStack, MonadIO m, Gio.Cancellable.IsCancellable a) =>
Bool
{- ^ /@compressed@/: Whether or not the stream is zlib-compressed -}
-> Int32
{- ^ /@parentDfd@/: Directory file descriptor -}
-> T.Text
{- ^ /@path@/: Subpath -}
-> Bool
{- ^ /@trusted@/: If 'True', assume the content has been validated -}
-> Maybe (a)
{- ^ /@cancellable@/: Cancellable -}
-> m ((Gio.InputStream.InputStream, Gio.FileInfo.FileInfo, GVariant))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
contentFileParseAt compressed parentDfd path trusted cancellable = liftIO $ do
let compressed' = (fromIntegral . fromEnum) compressed
path' <- textToCString path
let trusted' = (fromIntegral . fromEnum) trusted
outInput <- allocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
outFileInfo <- allocMem :: IO (Ptr (Ptr Gio.FileInfo.FileInfo))
outXattrs <- allocMem :: IO (Ptr (Ptr GVariant))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_content_file_parse_at compressed' parentDfd path' trusted' outInput outFileInfo outXattrs maybeCancellable
outInput' <- peek outInput
outInput'' <- (wrapObject Gio.InputStream.InputStream) outInput'
outFileInfo' <- peek outFileInfo
outFileInfo'' <- (wrapObject Gio.FileInfo.FileInfo) outFileInfo'
outXattrs' <- peek outXattrs
outXattrs'' <- B.GVariant.wrapGVariantPtr outXattrs'
whenJust cancellable touchManagedPtr
freeMem path'
freeMem outInput
freeMem outFileInfo
freeMem outXattrs
return (outInput'', outFileInfo'', outXattrs'')
) (do
freeMem path'
freeMem outInput
freeMem outFileInfo
freeMem outXattrs
)
-- function ostree_content_file_parse
-- Args : [Arg {argCName = "compressed", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Whether or not the stream is zlib-compressed", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "content_path", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Path to file containing content", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "trusted", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "If %TRUE, assume the content has been validated", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The raw file content stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_file_info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Normal metadata", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_xattrs", argType = TVariant, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Extended attributes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_content_file_parse" ostree_content_file_parse ::
CInt -> -- compressed : TBasicType TBoolean
Ptr Gio.File.File -> -- content_path : TInterface (Name {namespace = "Gio", name = "File"})
CInt -> -- trusted : TBasicType TBoolean
Ptr (Ptr Gio.InputStream.InputStream) -> -- out_input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Ptr (Ptr Gio.FileInfo.FileInfo) -> -- out_file_info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
Ptr (Ptr GVariant) -> -- out_xattrs : TVariant
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
A thin wrapper for 'GI.OSTree.Functions.contentStreamParse'; this function
converts an object content stream back into components.
-}
contentFileParse ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.Cancellable.IsCancellable b) =>
Bool
{- ^ /@compressed@/: Whether or not the stream is zlib-compressed -}
-> a
{- ^ /@contentPath@/: Path to file containing content -}
-> Bool
{- ^ /@trusted@/: If 'True', assume the content has been validated -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ((Gio.InputStream.InputStream, Gio.FileInfo.FileInfo, GVariant))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
contentFileParse compressed contentPath trusted cancellable = liftIO $ do
let compressed' = (fromIntegral . fromEnum) compressed
contentPath' <- unsafeManagedPtrCastPtr contentPath
let trusted' = (fromIntegral . fromEnum) trusted
outInput <- allocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
outFileInfo <- allocMem :: IO (Ptr (Ptr Gio.FileInfo.FileInfo))
outXattrs <- allocMem :: IO (Ptr (Ptr GVariant))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_content_file_parse compressed' contentPath' trusted' outInput outFileInfo outXattrs maybeCancellable
outInput' <- peek outInput
outInput'' <- (wrapObject Gio.InputStream.InputStream) outInput'
outFileInfo' <- peek outFileInfo
outFileInfo'' <- (wrapObject Gio.FileInfo.FileInfo) outFileInfo'
outXattrs' <- peek outXattrs
outXattrs'' <- B.GVariant.wrapGVariantPtr outXattrs'
touchManagedPtr contentPath
whenJust cancellable touchManagedPtr
freeMem outInput
freeMem outFileInfo
freeMem outXattrs
return (outInput'', outFileInfo'', outXattrs'')
) (do
freeMem outInput
freeMem outFileInfo
freeMem outXattrs
)
-- function ostree_commit_get_timestamp
-- Args : [Arg {argCName = "commit_variant", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt64)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_commit_get_timestamp" ostree_commit_get_timestamp ::
Ptr GVariant -> -- commit_variant : TVariant
IO Word64
{- |
/No description available in the introspection data./
-}
commitGetTimestamp ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
-> m Word64
commitGetTimestamp commitVariant = liftIO $ do
commitVariant' <- unsafeManagedPtrGetPtr commitVariant
result <- ostree_commit_get_timestamp commitVariant'
touchManagedPtr commitVariant
return result
-- function ostree_commit_get_parent
-- Args : [Arg {argCName = "commit_variant", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Variant of type %OSTREE_OBJECT_TYPE_COMMIT", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_commit_get_parent" ostree_commit_get_parent ::
Ptr GVariant -> -- commit_variant : TVariant
IO CString
{- |
/No description available in the introspection data./
-}
commitGetParent ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
{- ^ /@commitVariant@/: Variant of type 'GI.OSTree.Enums.ObjectTypeCommit' -}
-> m T.Text
{- ^ __Returns:__ Checksum of the parent commit of /@commitVariant@/, or 'Nothing'
if none -}
commitGetParent commitVariant = liftIO $ do
commitVariant' <- unsafeManagedPtrGetPtr commitVariant
result <- ostree_commit_get_parent commitVariant'
checkUnexpectedReturnNULL "commitGetParent" result
result' <- cstringToText result
freeMem result
touchManagedPtr commitVariant
return result'
-- function ostree_commit_get_content_checksum
-- Args : [Arg {argCName = "commit_variant", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A commit object", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_commit_get_content_checksum" ostree_commit_get_content_checksum ::
Ptr GVariant -> -- commit_variant : TVariant
IO CString
{- |
There are use cases where one wants a checksum just of the content of a
commit. OSTree commits by default capture the current timestamp, and may have
additional metadata, which means that re-committing identical content
often results in a new checksum.
By comparing checksums of content, it\'s possible to easily distinguish
cases where nothing actually changed.
The content checksums is simply defined as @SHA256(root dirtree_checksum || root_dirmeta_checksum)@,
i.e. the SHA-256 of the root \"dirtree\" object\'s checksum concatenated with the
root \"dirmeta\" checksum (both in binary form, not hexadecimal).
-}
commitGetContentChecksum ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
{- ^ /@commitVariant@/: A commit object -}
-> m (Maybe T.Text)
{- ^ __Returns:__ A SHA-256 hex string, or 'Nothing' if /@commitVariant@/ is not well-formed -}
commitGetContentChecksum commitVariant = liftIO $ do
commitVariant' <- unsafeManagedPtrGetPtr commitVariant
result <- ostree_commit_get_content_checksum commitVariant'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- cstringToText result'
freeMem result'
return result''
touchManagedPtr commitVariant
return maybeResult
-- function ostree_cmp_checksum_bytes
-- Args : [Arg {argCName = "a", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A binary checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A binary checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_cmp_checksum_bytes" ostree_cmp_checksum_bytes ::
Word8 -> -- a : TBasicType TUInt8
Word8 -> -- b : TBasicType TUInt8
IO Int32
{- |
Compare two binary checksums, using @/memcmp()/@.
-}
cmpChecksumBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
Word8
{- ^ /@a@/: A binary checksum -}
-> Word8
{- ^ /@b@/: A binary checksum -}
-> m Int32
cmpChecksumBytes a b = liftIO $ do
result <- ostree_cmp_checksum_bytes a b
return result
-- function ostree_cmd__private__
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "CmdPrivateVTable"}))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_cmd__private__" ostree_cmd__private__ ::
IO (Ptr OSTree.CmdPrivateVTable.CmdPrivateVTable)
{- |
/No description available in the introspection data./
-}
cmd_Private__ ::
(B.CallStack.HasCallStack, MonadIO m) =>
m OSTree.CmdPrivateVTable.CmdPrivateVTable
cmd_Private__ = liftIO $ do
result <- ostree_cmd__private__
checkUnexpectedReturnNULL "cmd_Private__" result
result' <- (newPtr OSTree.CmdPrivateVTable.CmdPrivateVTable) result
return result'
-- function ostree_checksum_to_bytes_v
-- Args : [Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An ASCII checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just TVariant
-- throws : False
-- Skip return : False
foreign import ccall "ostree_checksum_to_bytes_v" ostree_checksum_to_bytes_v ::
CString -> -- checksum : TBasicType TUTF8
IO (Ptr GVariant)
{- |
/No description available in the introspection data./
-}
checksumToBytesV ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@checksum@/: An ASCII checksum -}
-> m GVariant
{- ^ __Returns:__ New 'GVariant' of type ay with length 32 -}
checksumToBytesV checksum = liftIO $ do
checksum' <- textToCString checksum
result <- ostree_checksum_to_bytes_v checksum'
checkUnexpectedReturnNULL "checksumToBytesV" result
result' <- B.GVariant.wrapGVariantPtr result
freeMem checksum'
return result'
-- function ostree_checksum_to_bytes
-- Args : [Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An ASCII checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TCArray False 32 (-1) (TBasicType TUInt8))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_checksum_to_bytes" ostree_checksum_to_bytes ::
CString -> -- checksum : TBasicType TUTF8
IO (Ptr Word8)
{- |
/No description available in the introspection data./
-}
checksumToBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@checksum@/: An ASCII checksum -}
-> m ByteString
{- ^ __Returns:__ Binary checksum from /@checksum@/ of length 32; free with 'GI.GLib.Functions.free'. -}
checksumToBytes checksum = liftIO $ do
checksum' <- textToCString checksum
result <- ostree_checksum_to_bytes checksum'
checkUnexpectedReturnNULL "checksumToBytes" result
result' <- (unpackByteStringWithLength 32) result
freeMem result
freeMem checksum'
return result'
-- function ostree_checksum_inplace_to_bytes
-- Args : [Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a SHA256 string", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Output buffer with at least 32 bytes of space", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_checksum_inplace_to_bytes" ostree_checksum_inplace_to_bytes ::
CString -> -- checksum : TBasicType TUTF8
Word8 -> -- buf : TBasicType TUInt8
IO ()
{- |
Convert /@checksum@/ from a string to binary in-place, without
allocating memory. Use this function in hot code paths.
-}
checksumInplaceToBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@checksum@/: a SHA256 string -}
-> Word8
{- ^ /@buf@/: Output buffer with at least 32 bytes of space -}
-> m ()
checksumInplaceToBytes checksum buf = liftIO $ do
checksum' <- textToCString checksum
ostree_checksum_inplace_to_bytes checksum' buf
freeMem checksum'
return ()
-- function ostree_checksum_from_bytes_v
-- Args : [Arg {argCName = "csum_v", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GVariant of type ay", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_checksum_from_bytes_v" ostree_checksum_from_bytes_v ::
Ptr GVariant -> -- csum_v : TVariant
IO CString
{- |
/No description available in the introspection data./
-}
checksumFromBytesV ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
{- ^ /@csumV@/: 'GVariant' of type ay -}
-> m T.Text
{- ^ __Returns:__ String form of /@csumBytes@/ -}
checksumFromBytesV csumV = liftIO $ do
csumV' <- unsafeManagedPtrGetPtr csumV
result <- ostree_checksum_from_bytes_v csumV'
checkUnexpectedReturnNULL "checksumFromBytesV" result
result' <- cstringToText result
freeMem result
touchManagedPtr csumV
return result'
-- function ostree_checksum_from_bytes
-- Args : [Arg {argCName = "csum", argType = TCArray False 32 (-1) (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An binary checksum of length 32", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_checksum_from_bytes" ostree_checksum_from_bytes ::
Ptr Word8 -> -- csum : TCArray False 32 (-1) (TBasicType TUInt8)
IO CString
{- |
/No description available in the introspection data./
-}
checksumFromBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
ByteString
{- ^ /@csum@/: An binary checksum of length 32 -}
-> m T.Text
{- ^ __Returns:__ String form of /@csum@/ -}
checksumFromBytes csum = liftIO $ do
csum' <- packByteString csum
result <- ostree_checksum_from_bytes csum'
checkUnexpectedReturnNULL "checksumFromBytes" result
result' <- cstringToText result
freeMem result
freeMem csum'
return result'
-- function ostree_checksum_file_from_input
-- Args : [Arg {argCName = "file_info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "File information", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "xattrs", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Optional extended attributes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "in", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "File content, should be %NULL for symbolic links", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_csum", argType = TCArray False 32 (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Return location for binary checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_checksum_file_from_input" ostree_checksum_file_from_input ::
Ptr Gio.FileInfo.FileInfo -> -- file_info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
Ptr GVariant -> -- xattrs : TVariant
Ptr Gio.InputStream.InputStream -> -- in : TInterface (Name {namespace = "Gio", name = "InputStream"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
Ptr (Ptr Word8) -> -- out_csum : TCArray False 32 (-1) (TBasicType TUInt8)
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Compute the OSTree checksum for a given input.
-}
checksumFileFromInput ::
(B.CallStack.HasCallStack, MonadIO m, Gio.FileInfo.IsFileInfo a, Gio.InputStream.IsInputStream b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@fileInfo@/: File information -}
-> Maybe (GVariant)
{- ^ /@xattrs@/: Optional extended attributes -}
-> Maybe (b)
{- ^ /@in@/: File content, should be 'Nothing' for symbolic links -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m (ByteString)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
checksumFileFromInput fileInfo xattrs in_ objtype cancellable = liftIO $ do
fileInfo' <- unsafeManagedPtrCastPtr fileInfo
maybeXattrs <- case xattrs of
Nothing -> return nullPtr
Just jXattrs -> do
jXattrs' <- unsafeManagedPtrGetPtr jXattrs
return jXattrs'
maybeIn_ <- case in_ of
Nothing -> return nullPtr
Just jIn_ -> do
jIn_' <- unsafeManagedPtrCastPtr jIn_
return jIn_'
let objtype' = (fromIntegral . fromEnum) objtype
outCsum <- allocMem :: IO (Ptr (Ptr Word8))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_checksum_file_from_input fileInfo' maybeXattrs maybeIn_ objtype' outCsum maybeCancellable
outCsum' <- peek outCsum
outCsum'' <- (unpackByteStringWithLength 32) outCsum'
freeMem outCsum'
touchManagedPtr fileInfo
whenJust xattrs touchManagedPtr
whenJust in_ touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem outCsum
return outCsum''
) (do
freeMem outCsum
)
-- function ostree_checksum_file_at
-- Args : [Arg {argCName = "dfd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Directory file descriptor", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Subpath\n@stbuf (allow-none): Optional stat buffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stbuf", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "OSTree", name = "ChecksumFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Flags\n@out_checksum (out) (transfer full): Return location for hex checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_checksum_file_at" ostree_checksum_file_at ::
Int32 -> -- dfd : TBasicType TInt
CString -> -- path : TBasicType TUTF8
Ptr () -> -- stbuf : TBasicType TPtr
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CUInt -> -- flags : TInterface (Name {namespace = "OSTree", name = "ChecksumFlags"})
CString -> -- out_checksum : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Compute the OSTree checksum for a given file. This is an fd-relative version
of 'GI.OSTree.Functions.checksumFile' which also takes flags and fills in a caller
allocated buffer.
/Since: 2017.13/
-}
checksumFileAt ::
(B.CallStack.HasCallStack, MonadIO m, Gio.Cancellable.IsCancellable a) =>
Int32
{- ^ /@dfd@/: Directory file descriptor -}
-> T.Text
{- ^ /@path@/: Subpath
/@stbuf@/ (allow-none): Optional stat buffer -}
-> Ptr ()
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> [OSTree.Flags.ChecksumFlags]
{- ^ /@flags@/: Flags
/@outChecksum@/ (out) (transfer full): Return location for hex checksum -}
-> T.Text
-> Maybe (a)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
checksumFileAt dfd path stbuf objtype flags outChecksum cancellable = liftIO $ do
path' <- textToCString path
let objtype' = (fromIntegral . fromEnum) objtype
let flags' = gflagsToWord flags
outChecksum' <- textToCString outChecksum
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_checksum_file_at dfd path' stbuf objtype' flags' outChecksum' maybeCancellable
whenJust cancellable touchManagedPtr
freeMem path'
freeMem outChecksum'
return ()
) (do
freeMem path'
freeMem outChecksum'
)
-- function ostree_checksum_file_async_finish
-- Args : [Arg {argCName = "f", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "File path", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface (Name {namespace = "Gio", name = "AsyncResult"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Async result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_csum", argType = TCArray False 32 (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Return location for binary checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_checksum_file_async_finish" ostree_checksum_file_async_finish ::
Ptr Gio.File.File -> -- f : TInterface (Name {namespace = "Gio", name = "File"})
Ptr Gio.AsyncResult.AsyncResult -> -- result : TInterface (Name {namespace = "Gio", name = "AsyncResult"})
Ptr (Ptr Word8) -> -- out_csum : TCArray False 32 (-1) (TBasicType TUInt8)
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Finish computing the OSTree checksum for a given file; see
'GI.OSTree.Functions.checksumFileAsync'.
-}
checksumFileAsyncFinish ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.AsyncResult.IsAsyncResult b) =>
a
{- ^ /@f@/: File path -}
-> b
{- ^ /@result@/: Async result -}
-> m (ByteString)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
checksumFileAsyncFinish f result_ = liftIO $ do
f' <- unsafeManagedPtrCastPtr f
result_' <- unsafeManagedPtrCastPtr result_
outCsum <- allocMem :: IO (Ptr (Ptr Word8))
onException (do
_ <- propagateGError $ ostree_checksum_file_async_finish f' result_' outCsum
outCsum' <- peek outCsum
outCsum'' <- (unpackByteStringWithLength 32) outCsum'
freeMem outCsum'
touchManagedPtr f
touchManagedPtr result_
freeMem outCsum
return outCsum''
) (do
freeMem outCsum
)
-- function ostree_checksum_file_async
-- Args : [Arg {argCName = "f", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "File path", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "io_priority", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Priority for operation, see %G_IO_PRIORITY_DEFAULT", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Invoked when operation is complete", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Data for @callback", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_checksum_file_async" ostree_checksum_file_async ::
Ptr Gio.File.File -> -- f : TInterface (Name {namespace = "Gio", name = "File"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
Int32 -> -- io_priority : TBasicType TInt
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
FunPtr Gio.Callbacks.C_AsyncReadyCallback -> -- callback : TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"})
Ptr () -> -- user_data : TBasicType TPtr
IO ()
{- |
Asynchronously compute the OSTree checksum for a given file;
complete with 'GI.OSTree.Functions.checksumFileAsyncFinish'.
-}
checksumFileAsync ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@f@/: File path -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> Int32
{- ^ /@ioPriority@/: Priority for operation, see @/G_IO_PRIORITY_DEFAULT/@ -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> Maybe (Gio.Callbacks.AsyncReadyCallback)
{- ^ /@callback@/: Invoked when operation is complete -}
-> m ()
checksumFileAsync f objtype ioPriority cancellable callback = liftIO $ do
f' <- unsafeManagedPtrCastPtr f
let objtype' = (fromIntegral . fromEnum) objtype
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
maybeCallback <- case callback of
Nothing -> return (castPtrToFunPtr nullPtr)
Just jCallback -> do
ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.Callbacks.C_AsyncReadyCallback))
jCallback' <- Gio.Callbacks.mk_AsyncReadyCallback (Gio.Callbacks.wrap_AsyncReadyCallback (Just ptrcallback) (Gio.Callbacks.drop_closures_AsyncReadyCallback jCallback))
poke ptrcallback jCallback'
return jCallback'
let userData = nullPtr
ostree_checksum_file_async f' objtype' ioPriority maybeCancellable maybeCallback userData
touchManagedPtr f
whenJust cancellable touchManagedPtr
return ()
-- function ostree_checksum_file
-- Args : [Arg {argCName = "f", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "File path", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_csum", argType = TCArray False 32 (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Return location for binary checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_checksum_file" ostree_checksum_file ::
Ptr Gio.File.File -> -- f : TInterface (Name {namespace = "Gio", name = "File"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
Ptr (Ptr Word8) -> -- out_csum : TCArray False 32 (-1) (TBasicType TUInt8)
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Compute the OSTree checksum for a given file.
-}
checksumFile ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@f@/: File path -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m (ByteString)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
checksumFile f objtype cancellable = liftIO $ do
f' <- unsafeManagedPtrCastPtr f
let objtype' = (fromIntegral . fromEnum) objtype
outCsum <- allocMem :: IO (Ptr (Ptr Word8))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_checksum_file f' objtype' outCsum maybeCancellable
outCsum' <- peek outCsum
outCsum'' <- (unpackByteStringWithLength 32) outCsum'
freeMem outCsum'
touchManagedPtr f
whenJust cancellable touchManagedPtr
freeMem outCsum
return outCsum''
) (do
freeMem outCsum
)
-- function ostree_checksum_bytes_peek_validate
-- Args : [Arg {argCName = "bytes", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GVariant of type ay", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TCArray False 32 (-1) (TBasicType TUInt8))
-- throws : True
-- Skip return : False
foreign import ccall "ostree_checksum_bytes_peek_validate" ostree_checksum_bytes_peek_validate ::
Ptr GVariant -> -- bytes : TVariant
Ptr (Ptr GError) -> -- error
IO (Ptr Word8)
{- |
Like 'GI.OSTree.Functions.checksumBytesPeek', but also throws /@error@/.
-}
checksumBytesPeekValidate ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
{- ^ /@bytes@/: 'GVariant' of type ay -}
-> m ByteString
{- ^ __Returns:__ Binary checksum data /(Can throw 'Data.GI.Base.GError.GError')/ -}
checksumBytesPeekValidate bytes = liftIO $ do
bytes' <- unsafeManagedPtrGetPtr bytes
onException (do
result <- propagateGError $ ostree_checksum_bytes_peek_validate bytes'
checkUnexpectedReturnNULL "checksumBytesPeekValidate" result
result' <- (unpackByteStringWithLength 32) result
touchManagedPtr bytes
return result'
) (do
return ()
)
-- function ostree_checksum_bytes_peek
-- Args : [Arg {argCName = "bytes", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GVariant of type ay", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TCArray False 32 (-1) (TBasicType TUInt8))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_checksum_bytes_peek" ostree_checksum_bytes_peek ::
Ptr GVariant -> -- bytes : TVariant
IO (Ptr Word8)
{- |
/No description available in the introspection data./
-}
checksumBytesPeek ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
{- ^ /@bytes@/: 'GVariant' of type ay -}
-> m ByteString
{- ^ __Returns:__ Binary checksum data in /@bytes@/; do not free. If /@bytes@/ does not have the correct length, return 'Nothing'. -}
checksumBytesPeek bytes = liftIO $ do
bytes' <- unsafeManagedPtrGetPtr bytes
result <- ostree_checksum_bytes_peek bytes'
checkUnexpectedReturnNULL "checksumBytesPeek" result
result' <- (unpackByteStringWithLength 32) result
touchManagedPtr bytes
return result'
-- function ostree_checksum_b64_to_bytes
-- Args : [Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An ASCII checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TCArray False 32 (-1) (TBasicType TUInt8))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_checksum_b64_to_bytes" ostree_checksum_b64_to_bytes ::
CString -> -- checksum : TBasicType TUTF8
IO (Ptr Word8)
{- |
/No description available in the introspection data./
-}
checksumB64ToBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@checksum@/: An ASCII checksum -}
-> m ByteString
{- ^ __Returns:__ Binary version of /@checksum@/. -}
checksumB64ToBytes checksum = liftIO $ do
checksum' <- textToCString checksum
result <- ostree_checksum_b64_to_bytes checksum'
checkUnexpectedReturnNULL "checksumB64ToBytes" result
result' <- (unpackByteStringWithLength 32) result
freeMem result
freeMem checksum'
return result'
-- function ostree_checksum_b64_from_bytes
-- Args : [Arg {argCName = "csum", argType = TCArray False 32 (-1) (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An binary checksum of length 32", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_checksum_b64_from_bytes" ostree_checksum_b64_from_bytes ::
Ptr Word8 -> -- csum : TCArray False 32 (-1) (TBasicType TUInt8)
IO CString
{- |
/No description available in the introspection data./
-}
checksumB64FromBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
ByteString
{- ^ /@csum@/: An binary checksum of length 32 -}
-> m T.Text
{- ^ __Returns:__ Modified base64 encoding of /@csum@/
The \"modified\" term refers to the fact that instead of \'\/\', the \'_\'
character is used. -}
checksumB64FromBytes csum = liftIO $ do
csum' <- packByteString csum
result <- ostree_checksum_b64_from_bytes csum'
checkUnexpectedReturnNULL "checksumB64FromBytes" result
result' <- cstringToText result
freeMem result
freeMem csum'
return result'
-- function ostree_check_version
-- Args : [Arg {argCName = "required_year", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Major/year required", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "required_release", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Release version required", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_check_version" ostree_check_version ::
Word32 -> -- required_year : TBasicType TUInt
Word32 -> -- required_release : TBasicType TUInt
IO CInt
{- |
/No description available in the introspection data./
-}
checkVersion ::
(B.CallStack.HasCallStack, MonadIO m) =>
Word32
{- ^ /@requiredYear@/: Major\/year required -}
-> Word32
{- ^ /@requiredRelease@/: Release version required -}
-> m Bool
{- ^ __Returns:__ 'True' if current libostree has at least the requested version, 'False' otherwise -}
checkVersion requiredYear requiredRelease = liftIO $ do
result <- ostree_check_version requiredYear requiredRelease
let result' = (/= 0) result
return result'
-- function ostree_break_hardlink
-- Args : [Arg {argCName = "dfd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Directory fd", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Path relative to @dfd", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "skip_xattrs", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Do not copy extended attributes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_break_hardlink" ostree_break_hardlink ::
Int32 -> -- dfd : TBasicType TInt
CString -> -- path : TBasicType TUTF8
CInt -> -- skip_xattrs : TBasicType TBoolean
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
In many cases using libostree, a program may need to \"break\"
hardlinks by performing a copy. For example, in order to
logically append to a file.
This function performs full copying, including e.g. extended
attributes and permissions of both regular files and symbolic links.
If the file is not hardlinked, this function does nothing and
returns successfully.
This function does not perform synchronization via @fsync()@ or
@fdatasync()@; the idea is this will commonly be done as part
of an @ostree_repo_commit_transaction()@, which itself takes
care of synchronization.
/Since: 2017.15/
-}
breakHardlink ::
(B.CallStack.HasCallStack, MonadIO m, Gio.Cancellable.IsCancellable a) =>
Int32
{- ^ /@dfd@/: Directory fd -}
-> T.Text
{- ^ /@path@/: Path relative to /@dfd@/ -}
-> Bool
{- ^ /@skipXattrs@/: Do not copy extended attributes -}
-> Maybe (a)
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
breakHardlink dfd path skipXattrs cancellable = liftIO $ do
path' <- textToCString path
let skipXattrs' = (fromIntegral . fromEnum) skipXattrs
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_break_hardlink dfd path' skipXattrs' maybeCancellable
whenJust cancellable touchManagedPtr
freeMem path'
return ()
) (do
freeMem path'
)