#define ENABLE_OVERLOADING \
(!defined(__HADDOCK_VERSION__))
module GI.GLib.Structs.MappedFile
(
MappedFile(..) ,
noMappedFile ,
#if ENABLE_OVERLOADING
MappedFileFreeMethodInfo ,
#endif
mappedFileFree ,
#if ENABLE_OVERLOADING
MappedFileGetBytesMethodInfo ,
#endif
mappedFileGetBytes ,
#if ENABLE_OVERLOADING
MappedFileGetContentsMethodInfo ,
#endif
mappedFileGetContents ,
#if ENABLE_OVERLOADING
MappedFileGetLengthMethodInfo ,
#endif
mappedFileGetLength ,
mappedFileNew ,
mappedFileNewFromFd ,
#if ENABLE_OVERLOADING
MappedFileRefMethodInfo ,
#endif
mappedFileRef ,
#if ENABLE_OVERLOADING
MappedFileUnrefMethodInfo ,
#endif
mappedFileUnref ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.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.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import {-# SOURCE #-} qualified GI.GLib.Structs.Bytes as GLib.Bytes
newtype MappedFile = MappedFile (ManagedPtr MappedFile)
foreign import ccall "g_mapped_file_get_type" c_g_mapped_file_get_type ::
IO GType
instance BoxedObject MappedFile where
boxedType :: MappedFile -> IO GType
boxedType _ = IO GType
c_g_mapped_file_get_type
noMappedFile :: Maybe MappedFile
noMappedFile :: Maybe MappedFile
noMappedFile = Maybe MappedFile
forall a. Maybe a
Nothing
#if ENABLE_OVERLOADING
instance O.HasAttributeList MappedFile
type instance O.AttributeList MappedFile = MappedFileAttributeList
type MappedFileAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "g_mapped_file_new" g_mapped_file_new ::
CString ->
CInt ->
Ptr (Ptr GError) ->
IO (Ptr MappedFile)
mappedFileNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
[Char]
-> Bool
-> m MappedFile
mappedFileNew :: [Char] -> Bool -> m MappedFile
mappedFileNew filename :: [Char]
filename writable :: Bool
writable = IO MappedFile -> m MappedFile
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MappedFile -> m MappedFile) -> IO MappedFile -> m MappedFile
forall a b. (a -> b) -> a -> b
$ do
CString
filename' <- [Char] -> IO CString
stringToCString [Char]
filename
let writable' :: CInt
writable' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
writable
IO MappedFile -> IO () -> IO MappedFile
forall a b. IO a -> IO b -> IO a
onException (do
Ptr MappedFile
result <- (Ptr (Ptr GError) -> IO (Ptr MappedFile)) -> IO (Ptr MappedFile)
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO (Ptr MappedFile)) -> IO (Ptr MappedFile))
-> (Ptr (Ptr GError) -> IO (Ptr MappedFile)) -> IO (Ptr MappedFile)
forall a b. (a -> b) -> a -> b
$ CString -> CInt -> Ptr (Ptr GError) -> IO (Ptr MappedFile)
g_mapped_file_new CString
filename' CInt
writable'
Text -> Ptr MappedFile -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "mappedFileNew" Ptr MappedFile
result
MappedFile
result' <- ((ManagedPtr MappedFile -> MappedFile)
-> Ptr MappedFile -> IO MappedFile
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr MappedFile -> MappedFile
MappedFile) Ptr MappedFile
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
filename'
MappedFile -> IO MappedFile
forall (m :: * -> *) a. Monad m => a -> m a
return MappedFile
result'
) (do
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
filename'
)
#if ENABLE_OVERLOADING
#endif
foreign import ccall "g_mapped_file_new_from_fd" g_mapped_file_new_from_fd ::
Int32 ->
CInt ->
Ptr (Ptr GError) ->
IO (Ptr MappedFile)
mappedFileNewFromFd ::
(B.CallStack.HasCallStack, MonadIO m) =>
Int32
-> Bool
-> m MappedFile
mappedFileNewFromFd :: Int32 -> Bool -> m MappedFile
mappedFileNewFromFd fd :: Int32
fd writable :: Bool
writable = IO MappedFile -> m MappedFile
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MappedFile -> m MappedFile) -> IO MappedFile -> m MappedFile
forall a b. (a -> b) -> a -> b
$ do
let writable' :: CInt
writable' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
writable
IO MappedFile -> IO () -> IO MappedFile
forall a b. IO a -> IO b -> IO a
onException (do
Ptr MappedFile
result <- (Ptr (Ptr GError) -> IO (Ptr MappedFile)) -> IO (Ptr MappedFile)
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO (Ptr MappedFile)) -> IO (Ptr MappedFile))
-> (Ptr (Ptr GError) -> IO (Ptr MappedFile)) -> IO (Ptr MappedFile)
forall a b. (a -> b) -> a -> b
$ Int32 -> CInt -> Ptr (Ptr GError) -> IO (Ptr MappedFile)
g_mapped_file_new_from_fd Int32
fd CInt
writable'
Text -> Ptr MappedFile -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "mappedFileNewFromFd" Ptr MappedFile
result
MappedFile
result' <- ((ManagedPtr MappedFile -> MappedFile)
-> Ptr MappedFile -> IO MappedFile
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr MappedFile -> MappedFile
MappedFile) Ptr MappedFile
result
MappedFile -> IO MappedFile
forall (m :: * -> *) a. Monad m => a -> m a
return MappedFile
result'
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
#if ENABLE_OVERLOADING
#endif
foreign import ccall "g_mapped_file_free" g_mapped_file_free ::
Ptr MappedFile ->
IO ()
{-# DEPRECATED mappedFileFree ["(Since version 2.22)","Use 'GI.GLib.Structs.MappedFile.mappedFileUnref' instead."] #-}
mappedFileFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
MappedFile
-> m ()
mappedFileFree :: MappedFile -> m ()
mappedFileFree file :: MappedFile
file = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr MappedFile
file' <- MappedFile -> IO (Ptr MappedFile)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MappedFile
file
Ptr MappedFile -> IO ()
g_mapped_file_free Ptr MappedFile
file'
MappedFile -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MappedFile
file
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if ENABLE_OVERLOADING
data MappedFileFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo MappedFileFreeMethodInfo MappedFile signature where
overloadedMethod _ = mappedFileFree
#endif
foreign import ccall "g_mapped_file_get_bytes" g_mapped_file_get_bytes ::
Ptr MappedFile ->
IO (Ptr GLib.Bytes.Bytes)
mappedFileGetBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
MappedFile
-> m GLib.Bytes.Bytes
mappedFileGetBytes :: MappedFile -> m Bytes
mappedFileGetBytes file :: MappedFile
file = IO Bytes -> m Bytes
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bytes -> m Bytes) -> IO Bytes -> m Bytes
forall a b. (a -> b) -> a -> b
$ do
Ptr MappedFile
file' <- MappedFile -> IO (Ptr MappedFile)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MappedFile
file
Ptr Bytes
result <- Ptr MappedFile -> IO (Ptr Bytes)
g_mapped_file_get_bytes Ptr MappedFile
file'
Text -> Ptr Bytes -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "mappedFileGetBytes" Ptr Bytes
result
Bytes
result' <- ((ManagedPtr Bytes -> Bytes) -> Ptr Bytes -> IO Bytes
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Bytes -> Bytes
GLib.Bytes.Bytes) Ptr Bytes
result
MappedFile -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MappedFile
file
Bytes -> IO Bytes
forall (m :: * -> *) a. Monad m => a -> m a
return Bytes
result'
#if ENABLE_OVERLOADING
data MappedFileGetBytesMethodInfo
instance (signature ~ (m GLib.Bytes.Bytes), MonadIO m) => O.MethodInfo MappedFileGetBytesMethodInfo MappedFile signature where
overloadedMethod _ = mappedFileGetBytes
#endif
foreign import ccall "g_mapped_file_get_contents" g_mapped_file_get_contents ::
Ptr MappedFile ->
IO CString
mappedFileGetContents ::
(B.CallStack.HasCallStack, MonadIO m) =>
MappedFile
-> m T.Text
mappedFileGetContents :: MappedFile -> m Text
mappedFileGetContents file :: MappedFile
file = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
Ptr MappedFile
file' <- MappedFile -> IO (Ptr MappedFile)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MappedFile
file
CString
result <- Ptr MappedFile -> IO CString
g_mapped_file_get_contents Ptr MappedFile
file'
Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "mappedFileGetContents" CString
result
Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
MappedFile -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MappedFile
file
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if ENABLE_OVERLOADING
data MappedFileGetContentsMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo MappedFileGetContentsMethodInfo MappedFile signature where
overloadedMethod _ = mappedFileGetContents
#endif
foreign import ccall "g_mapped_file_get_length" g_mapped_file_get_length ::
Ptr MappedFile ->
IO Word64
mappedFileGetLength ::
(B.CallStack.HasCallStack, MonadIO m) =>
MappedFile
-> m Word64
mappedFileGetLength :: MappedFile -> m Word64
mappedFileGetLength file :: MappedFile
file = IO Word64 -> m Word64
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ do
Ptr MappedFile
file' <- MappedFile -> IO (Ptr MappedFile)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MappedFile
file
Word64
result <- Ptr MappedFile -> IO Word64
g_mapped_file_get_length Ptr MappedFile
file'
MappedFile -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MappedFile
file
Word64 -> IO Word64
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
result
#if ENABLE_OVERLOADING
data MappedFileGetLengthMethodInfo
instance (signature ~ (m Word64), MonadIO m) => O.MethodInfo MappedFileGetLengthMethodInfo MappedFile signature where
overloadedMethod _ = mappedFileGetLength
#endif
foreign import ccall "g_mapped_file_ref" g_mapped_file_ref ::
Ptr MappedFile ->
IO (Ptr MappedFile)
mappedFileRef ::
(B.CallStack.HasCallStack, MonadIO m) =>
MappedFile
-> m MappedFile
mappedFileRef :: MappedFile -> m MappedFile
mappedFileRef file :: MappedFile
file = IO MappedFile -> m MappedFile
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MappedFile -> m MappedFile) -> IO MappedFile -> m MappedFile
forall a b. (a -> b) -> a -> b
$ do
Ptr MappedFile
file' <- MappedFile -> IO (Ptr MappedFile)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MappedFile
file
Ptr MappedFile
result <- Ptr MappedFile -> IO (Ptr MappedFile)
g_mapped_file_ref Ptr MappedFile
file'
Text -> Ptr MappedFile -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "mappedFileRef" Ptr MappedFile
result
MappedFile
result' <- ((ManagedPtr MappedFile -> MappedFile)
-> Ptr MappedFile -> IO MappedFile
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr MappedFile -> MappedFile
MappedFile) Ptr MappedFile
result
MappedFile -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MappedFile
file
MappedFile -> IO MappedFile
forall (m :: * -> *) a. Monad m => a -> m a
return MappedFile
result'
#if ENABLE_OVERLOADING
data MappedFileRefMethodInfo
instance (signature ~ (m MappedFile), MonadIO m) => O.MethodInfo MappedFileRefMethodInfo MappedFile signature where
overloadedMethod _ = mappedFileRef
#endif
foreign import ccall "g_mapped_file_unref" g_mapped_file_unref ::
Ptr MappedFile ->
IO ()
mappedFileUnref ::
(B.CallStack.HasCallStack, MonadIO m) =>
MappedFile
-> m ()
mappedFileUnref :: MappedFile -> m ()
mappedFileUnref file :: MappedFile
file = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr MappedFile
file' <- MappedFile -> IO (Ptr MappedFile)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MappedFile
file
Ptr MappedFile -> IO ()
g_mapped_file_unref Ptr MappedFile
file'
MappedFile -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MappedFile
file
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if ENABLE_OVERLOADING
data MappedFileUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo MappedFileUnrefMethodInfo MappedFile signature where
overloadedMethod _ = mappedFileUnref
#endif
#if ENABLE_OVERLOADING
type family ResolveMappedFileMethod (t :: Symbol) (o :: *) :: * where
ResolveMappedFileMethod "free" o = MappedFileFreeMethodInfo
ResolveMappedFileMethod "ref" o = MappedFileRefMethodInfo
ResolveMappedFileMethod "unref" o = MappedFileUnrefMethodInfo
ResolveMappedFileMethod "getBytes" o = MappedFileGetBytesMethodInfo
ResolveMappedFileMethod "getContents" o = MappedFileGetContentsMethodInfo
ResolveMappedFileMethod "getLength" o = MappedFileGetLengthMethodInfo
ResolveMappedFileMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveMappedFileMethod t MappedFile, O.MethodInfo info MappedFile p) => O.IsLabelProxy t (MappedFile -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveMappedFileMethod t MappedFile, O.MethodInfo info MappedFile p) => O.IsLabel t (MappedFile -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
#endif