{-# LANGUAGE TypeApplications #-}
#if !defined(__HADDOCK_VERSION__)
#define ENABLE_OVERLOADING
#endif
module GI.GLib.Structs.MainContext
(
MainContext(..) ,
#if defined(ENABLE_OVERLOADING)
ResolveMainContextMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
MainContextAcquireMethodInfo ,
#endif
mainContextAcquire ,
#if defined(ENABLE_OVERLOADING)
MainContextAddPollMethodInfo ,
#endif
mainContextAddPoll ,
#if defined(ENABLE_OVERLOADING)
MainContextCheckMethodInfo ,
#endif
mainContextCheck ,
mainContextDefault ,
#if defined(ENABLE_OVERLOADING)
MainContextDispatchMethodInfo ,
#endif
mainContextDispatch ,
#if defined(ENABLE_OVERLOADING)
MainContextFindSourceByFuncsUserDataMethodInfo,
#endif
mainContextFindSourceByFuncsUserData ,
#if defined(ENABLE_OVERLOADING)
MainContextFindSourceByIdMethodInfo ,
#endif
mainContextFindSourceById ,
#if defined(ENABLE_OVERLOADING)
MainContextFindSourceByUserDataMethodInfo,
#endif
mainContextFindSourceByUserData ,
mainContextGetThreadDefault ,
#if defined(ENABLE_OVERLOADING)
MainContextInvokeFullMethodInfo ,
#endif
mainContextInvokeFull ,
#if defined(ENABLE_OVERLOADING)
MainContextIsOwnerMethodInfo ,
#endif
mainContextIsOwner ,
#if defined(ENABLE_OVERLOADING)
MainContextIterationMethodInfo ,
#endif
mainContextIteration ,
mainContextNew ,
mainContextNewWithFlags ,
#if defined(ENABLE_OVERLOADING)
MainContextPendingMethodInfo ,
#endif
mainContextPending ,
#if defined(ENABLE_OVERLOADING)
MainContextPopThreadDefaultMethodInfo ,
#endif
mainContextPopThreadDefault ,
#if defined(ENABLE_OVERLOADING)
MainContextPrepareMethodInfo ,
#endif
mainContextPrepare ,
#if defined(ENABLE_OVERLOADING)
MainContextPushThreadDefaultMethodInfo ,
#endif
mainContextPushThreadDefault ,
#if defined(ENABLE_OVERLOADING)
MainContextQueryMethodInfo ,
#endif
mainContextQuery ,
#if defined(ENABLE_OVERLOADING)
MainContextRefMethodInfo ,
#endif
mainContextRef ,
mainContextRefThreadDefault ,
#if defined(ENABLE_OVERLOADING)
MainContextReleaseMethodInfo ,
#endif
mainContextRelease ,
#if defined(ENABLE_OVERLOADING)
MainContextRemovePollMethodInfo ,
#endif
mainContextRemovePoll ,
#if defined(ENABLE_OVERLOADING)
MainContextUnrefMethodInfo ,
#endif
mainContextUnref ,
#if defined(ENABLE_OVERLOADING)
MainContextWaitMethodInfo ,
#endif
mainContextWait ,
#if defined(ENABLE_OVERLOADING)
MainContextWakeupMethodInfo ,
#endif
mainContextWakeup ,
) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
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 GHC.Records as R
import qualified Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT
#if MIN_VERSION_base(4,18,0)
import qualified GI.GLib.Callbacks as GLib.Callbacks
import {-# SOURCE #-} qualified GI.GLib.Flags as GLib.Flags
import {-# SOURCE #-} qualified GI.GLib.Structs.Cond as GLib.Cond
import {-# SOURCE #-} qualified GI.GLib.Structs.PollFD as GLib.PollFD
import {-# SOURCE #-} qualified GI.GLib.Structs.Source as GLib.Source
import {-# SOURCE #-} qualified GI.GLib.Structs.SourceCallbackFuncs as GLib.SourceCallbackFuncs
import {-# SOURCE #-} qualified GI.GLib.Structs.SourceFuncs as GLib.SourceFuncs
import {-# SOURCE #-} qualified GI.GLib.Structs.TimeVal as GLib.TimeVal
import {-# SOURCE #-} qualified GI.GLib.Unions.Mutex as GLib.Mutex
#else
import qualified GI.GLib.Callbacks as GLib.Callbacks
import {-# SOURCE #-} qualified GI.GLib.Flags as GLib.Flags
import {-# SOURCE #-} qualified GI.GLib.Structs.Cond as GLib.Cond
import {-# SOURCE #-} qualified GI.GLib.Structs.PollFD as GLib.PollFD
import {-# SOURCE #-} qualified GI.GLib.Structs.Source as GLib.Source
import {-# SOURCE #-} qualified GI.GLib.Structs.SourceFuncs as GLib.SourceFuncs
import {-# SOURCE #-} qualified GI.GLib.Unions.Mutex as GLib.Mutex
#endif
newtype MainContext = MainContext (SP.ManagedPtr MainContext)
deriving (MainContext -> MainContext -> Bool
(MainContext -> MainContext -> Bool)
-> (MainContext -> MainContext -> Bool) -> Eq MainContext
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MainContext -> MainContext -> Bool
== :: MainContext -> MainContext -> Bool
$c/= :: MainContext -> MainContext -> Bool
/= :: MainContext -> MainContext -> Bool
Eq)
instance SP.ManagedPtrNewtype MainContext where
toManagedPtr :: MainContext -> ManagedPtr MainContext
toManagedPtr (MainContext ManagedPtr MainContext
p) = ManagedPtr MainContext
p
foreign import ccall "g_main_context_get_type" c_g_main_context_get_type ::
IO GType
type instance O.ParentTypes MainContext = '[]
instance O.HasParentTypes MainContext
instance B.Types.TypedObject MainContext where
glibType :: IO GType
glibType = IO GType
c_g_main_context_get_type
instance B.Types.GBoxed MainContext
instance B.GValue.IsGValue (Maybe MainContext) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_g_main_context_get_type
gvalueSet_ :: Ptr GValue -> Maybe MainContext -> IO ()
gvalueSet_ Ptr GValue
gv Maybe MainContext
P.Nothing = Ptr GValue -> Ptr MainContext -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv (Ptr MainContext
forall a. Ptr a
FP.nullPtr :: FP.Ptr MainContext)
gvalueSet_ Ptr GValue
gv (P.Just MainContext
obj) = MainContext -> (Ptr MainContext -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr MainContext
obj (Ptr GValue -> Ptr MainContext -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe MainContext)
gvalueGet_ Ptr GValue
gv = do
ptr <- Ptr GValue -> IO (Ptr MainContext)
forall b. Ptr GValue -> IO (Ptr b)
B.GValue.get_boxed Ptr GValue
gv :: IO (Ptr MainContext)
if ptr /= FP.nullPtr
then P.Just <$> B.ManagedPtr.newBoxed MainContext ptr
else return P.Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList MainContext
type instance O.AttributeList MainContext = MainContextAttributeList
type MainContextAttributeList = ('[ ] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "g_main_context_new" g_main_context_new ::
IO (Ptr MainContext)
mainContextNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
m MainContext
mainContextNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m MainContext
mainContextNew = IO MainContext -> m MainContext
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MainContext -> m MainContext)
-> IO MainContext -> m MainContext
forall a b. (a -> b) -> a -> b
$ do
result <- IO (Ptr MainContext)
g_main_context_new
checkUnexpectedReturnNULL "mainContextNew" result
result' <- (wrapBoxed MainContext) result
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_main_context_new_with_flags" g_main_context_new_with_flags ::
CUInt ->
IO (Ptr MainContext)
mainContextNewWithFlags ::
(B.CallStack.HasCallStack, MonadIO m) =>
[GLib.Flags.MainContextFlags]
-> m MainContext
mainContextNewWithFlags :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
[MainContextFlags] -> m MainContext
mainContextNewWithFlags [MainContextFlags]
flags = IO MainContext -> m MainContext
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MainContext -> m MainContext)
-> IO MainContext -> m MainContext
forall a b. (a -> b) -> a -> b
$ do
let flags' :: CUInt
flags' = [MainContextFlags] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [MainContextFlags]
flags
result <- CUInt -> IO (Ptr MainContext)
g_main_context_new_with_flags CUInt
flags'
checkUnexpectedReturnNULL "mainContextNewWithFlags" result
result' <- (wrapBoxed MainContext) result
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_main_context_acquire" g_main_context_acquire ::
Ptr MainContext ->
IO CInt
mainContextAcquire ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> m Bool
mainContextAcquire :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> m Bool
mainContextAcquire Maybe MainContext
context = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
result <- g_main_context_acquire maybeContext
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
whenJust context touchManagedPtr
return result'
#if defined(ENABLE_OVERLOADING)
data MainContextAcquireMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.OverloadedMethod MainContextAcquireMethodInfo MainContext signature where
overloadedMethod i = mainContextAcquire (Just i)
instance O.OverloadedMethodInfo MainContextAcquireMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextAcquire",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextAcquire"
})
#endif
foreign import ccall "g_main_context_add_poll" g_main_context_add_poll ::
Ptr MainContext ->
Ptr GLib.PollFD.PollFD ->
Int32 ->
IO ()
mainContextAddPoll ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> GLib.PollFD.PollFD
-> Int32
-> m ()
mainContextAddPoll :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> PollFD -> Int32 -> m ()
mainContextAddPoll Maybe MainContext
context PollFD
fd Int32
priority = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
fd' <- unsafeManagedPtrGetPtr fd
g_main_context_add_poll maybeContext fd' priority
whenJust context touchManagedPtr
touchManagedPtr fd
return ()
#if defined(ENABLE_OVERLOADING)
data MainContextAddPollMethodInfo
instance (signature ~ (GLib.PollFD.PollFD -> Int32 -> m ()), MonadIO m) => O.OverloadedMethod MainContextAddPollMethodInfo MainContext signature where
overloadedMethod i = mainContextAddPoll (Just i)
instance O.OverloadedMethodInfo MainContextAddPollMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextAddPoll",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextAddPoll"
})
#endif
foreign import ccall "g_main_context_check" g_main_context_check ::
Ptr MainContext ->
Int32 ->
Ptr GLib.PollFD.PollFD ->
Int32 ->
IO CInt
mainContextCheck ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> Int32
-> [GLib.PollFD.PollFD]
-> m Bool
mainContextCheck :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> Int32 -> [PollFD] -> m Bool
mainContextCheck Maybe MainContext
context Int32
maxPriority [PollFD]
fds = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
let nFds :: Int32
nFds = Int -> Int32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Int32) -> Int -> Int32
forall a b. (a -> b) -> a -> b
$ [PollFD] -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
P.length [PollFD]
fds
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
fds' <- mapM unsafeManagedPtrGetPtr fds
fds'' <- packBlockArray 8 fds'
result <- g_main_context_check maybeContext maxPriority fds'' nFds
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
whenJust context touchManagedPtr
mapM_ touchManagedPtr fds
freeMem fds''
return result'
#if defined(ENABLE_OVERLOADING)
data MainContextCheckMethodInfo
instance (signature ~ (Int32 -> [GLib.PollFD.PollFD] -> m Bool), MonadIO m) => O.OverloadedMethod MainContextCheckMethodInfo MainContext signature where
overloadedMethod i = mainContextCheck (Just i)
instance O.OverloadedMethodInfo MainContextCheckMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextCheck",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextCheck"
})
#endif
foreign import ccall "g_main_context_dispatch" g_main_context_dispatch ::
Ptr MainContext ->
IO ()
mainContextDispatch ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> m ()
mainContextDispatch :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> m ()
mainContextDispatch Maybe MainContext
context = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
g_main_context_dispatch maybeContext
whenJust context touchManagedPtr
return ()
#if defined(ENABLE_OVERLOADING)
data MainContextDispatchMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod MainContextDispatchMethodInfo MainContext signature where
overloadedMethod i = mainContextDispatch (Just i)
instance O.OverloadedMethodInfo MainContextDispatchMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextDispatch",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextDispatch"
})
#endif
foreign import ccall "g_main_context_find_source_by_funcs_user_data" g_main_context_find_source_by_funcs_user_data ::
Ptr MainContext ->
Ptr GLib.SourceFuncs.SourceFuncs ->
Ptr () ->
IO (Ptr GLib.Source.Source)
mainContextFindSourceByFuncsUserData ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> GLib.SourceFuncs.SourceFuncs
-> Ptr ()
-> m (Maybe GLib.Source.Source)
mainContextFindSourceByFuncsUserData :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> SourceFuncs -> Ptr () -> m (Maybe Source)
mainContextFindSourceByFuncsUserData Maybe MainContext
context SourceFuncs
funcs Ptr ()
userData = IO (Maybe Source) -> m (Maybe Source)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Source) -> m (Maybe Source))
-> IO (Maybe Source) -> m (Maybe Source)
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
funcs' <- unsafeManagedPtrGetPtr funcs
result <- g_main_context_find_source_by_funcs_user_data maybeContext funcs' userData
maybeResult <- convertIfNonNull result $ \Ptr Source
result' -> do
result'' <- ((ManagedPtr Source -> Source) -> Ptr Source -> IO Source
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr Source -> Source
GLib.Source.Source) Ptr Source
result'
return result''
whenJust context touchManagedPtr
touchManagedPtr funcs
return maybeResult
#if defined(ENABLE_OVERLOADING)
data MainContextFindSourceByFuncsUserDataMethodInfo
instance (signature ~ (GLib.SourceFuncs.SourceFuncs -> Ptr () -> m (Maybe GLib.Source.Source)), MonadIO m) => O.OverloadedMethod MainContextFindSourceByFuncsUserDataMethodInfo MainContext signature where
overloadedMethod i = mainContextFindSourceByFuncsUserData (Just i)
instance O.OverloadedMethodInfo MainContextFindSourceByFuncsUserDataMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextFindSourceByFuncsUserData",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextFindSourceByFuncsUserData"
})
#endif
foreign import ccall "g_main_context_find_source_by_id" g_main_context_find_source_by_id ::
Ptr MainContext ->
Word32 ->
IO (Ptr GLib.Source.Source)
mainContextFindSourceById ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> Word32
-> m GLib.Source.Source
mainContextFindSourceById :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> Word32 -> m Source
mainContextFindSourceById Maybe MainContext
context Word32
sourceId = IO Source -> m Source
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Source -> m Source) -> IO Source -> m Source
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
result <- g_main_context_find_source_by_id maybeContext sourceId
checkUnexpectedReturnNULL "mainContextFindSourceById" result
result' <- (newBoxed GLib.Source.Source) result
whenJust context touchManagedPtr
return result'
#if defined(ENABLE_OVERLOADING)
data MainContextFindSourceByIdMethodInfo
instance (signature ~ (Word32 -> m GLib.Source.Source), MonadIO m) => O.OverloadedMethod MainContextFindSourceByIdMethodInfo MainContext signature where
overloadedMethod i = mainContextFindSourceById (Just i)
instance O.OverloadedMethodInfo MainContextFindSourceByIdMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextFindSourceById",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextFindSourceById"
})
#endif
foreign import ccall "g_main_context_find_source_by_user_data" g_main_context_find_source_by_user_data ::
Ptr MainContext ->
Ptr () ->
IO (Ptr GLib.Source.Source)
mainContextFindSourceByUserData ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> Ptr ()
-> m (Maybe GLib.Source.Source)
mainContextFindSourceByUserData :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> Ptr () -> m (Maybe Source)
mainContextFindSourceByUserData Maybe MainContext
context Ptr ()
userData = IO (Maybe Source) -> m (Maybe Source)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Source) -> m (Maybe Source))
-> IO (Maybe Source) -> m (Maybe Source)
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
result <- g_main_context_find_source_by_user_data maybeContext userData
maybeResult <- convertIfNonNull result $ \Ptr Source
result' -> do
result'' <- ((ManagedPtr Source -> Source) -> Ptr Source -> IO Source
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr Source -> Source
GLib.Source.Source) Ptr Source
result'
return result''
whenJust context touchManagedPtr
return maybeResult
#if defined(ENABLE_OVERLOADING)
data MainContextFindSourceByUserDataMethodInfo
instance (signature ~ (Ptr () -> m (Maybe GLib.Source.Source)), MonadIO m) => O.OverloadedMethod MainContextFindSourceByUserDataMethodInfo MainContext signature where
overloadedMethod i = mainContextFindSourceByUserData (Just i)
instance O.OverloadedMethodInfo MainContextFindSourceByUserDataMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextFindSourceByUserData",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextFindSourceByUserData"
})
#endif
foreign import ccall "g_main_context_invoke_full" g_main_context_invoke_full ::
Ptr MainContext ->
Int32 ->
FunPtr GLib.Callbacks.C_SourceFunc ->
Ptr () ->
FunPtr GLib.Callbacks.C_DestroyNotify ->
IO ()
mainContextInvokeFull ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> Int32
-> GLib.Callbacks.SourceFunc
-> m ()
mainContextInvokeFull :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> Int32 -> IO Bool -> m ()
mainContextInvokeFull Maybe MainContext
context Int32
priority IO Bool
function = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
function' <- GLib.Callbacks.mk_SourceFunc (GLib.Callbacks.wrap_SourceFunc Nothing (GLib.Callbacks.drop_closures_SourceFunc function))
let data_ = FunPtr C_SourceFunc -> Ptr ()
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr FunPtr C_SourceFunc
function'
let notify = FunPtr (Ptr a -> IO ())
forall a. FunPtr (Ptr a -> IO ())
SP.safeFreeFunPtrPtr
g_main_context_invoke_full maybeContext priority function' data_ notify
whenJust context touchManagedPtr
return ()
#if defined(ENABLE_OVERLOADING)
data MainContextInvokeFullMethodInfo
instance (signature ~ (Int32 -> GLib.Callbacks.SourceFunc -> m ()), MonadIO m) => O.OverloadedMethod MainContextInvokeFullMethodInfo MainContext signature where
overloadedMethod i = mainContextInvokeFull (Just i)
instance O.OverloadedMethodInfo MainContextInvokeFullMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextInvokeFull",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextInvokeFull"
})
#endif
foreign import ccall "g_main_context_is_owner" g_main_context_is_owner ::
Ptr MainContext ->
IO CInt
mainContextIsOwner ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> m Bool
mainContextIsOwner :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> m Bool
mainContextIsOwner Maybe MainContext
context = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
result <- g_main_context_is_owner maybeContext
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
whenJust context touchManagedPtr
return result'
#if defined(ENABLE_OVERLOADING)
data MainContextIsOwnerMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.OverloadedMethod MainContextIsOwnerMethodInfo MainContext signature where
overloadedMethod i = mainContextIsOwner (Just i)
instance O.OverloadedMethodInfo MainContextIsOwnerMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextIsOwner",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextIsOwner"
})
#endif
foreign import ccall "g_main_context_iteration" g_main_context_iteration ::
Ptr MainContext ->
CInt ->
IO CInt
mainContextIteration ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> Bool
-> m Bool
mainContextIteration :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> Bool -> m Bool
mainContextIteration Maybe MainContext
context Bool
mayBlock = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
let mayBlock' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.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
P.fromEnum) Bool
mayBlock
result <- g_main_context_iteration maybeContext mayBlock'
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
whenJust context touchManagedPtr
return result'
#if defined(ENABLE_OVERLOADING)
data MainContextIterationMethodInfo
instance (signature ~ (Bool -> m Bool), MonadIO m) => O.OverloadedMethod MainContextIterationMethodInfo MainContext signature where
overloadedMethod i = mainContextIteration (Just i)
instance O.OverloadedMethodInfo MainContextIterationMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextIteration",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextIteration"
})
#endif
foreign import ccall "g_main_context_pending" g_main_context_pending ::
Ptr MainContext ->
IO CInt
mainContextPending ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> m Bool
mainContextPending :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> m Bool
mainContextPending Maybe MainContext
context = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
result <- g_main_context_pending maybeContext
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
whenJust context touchManagedPtr
return result'
#if defined(ENABLE_OVERLOADING)
data MainContextPendingMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.OverloadedMethod MainContextPendingMethodInfo MainContext signature where
overloadedMethod i = mainContextPending (Just i)
instance O.OverloadedMethodInfo MainContextPendingMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextPending",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextPending"
})
#endif
foreign import ccall "g_main_context_pop_thread_default" g_main_context_pop_thread_default ::
Ptr MainContext ->
IO ()
mainContextPopThreadDefault ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> m ()
mainContextPopThreadDefault :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> m ()
mainContextPopThreadDefault Maybe MainContext
context = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
g_main_context_pop_thread_default maybeContext
whenJust context touchManagedPtr
return ()
#if defined(ENABLE_OVERLOADING)
data MainContextPopThreadDefaultMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod MainContextPopThreadDefaultMethodInfo MainContext signature where
overloadedMethod i = mainContextPopThreadDefault (Just i)
instance O.OverloadedMethodInfo MainContextPopThreadDefaultMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextPopThreadDefault",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextPopThreadDefault"
})
#endif
foreign import ccall "g_main_context_prepare" g_main_context_prepare ::
Ptr MainContext ->
Ptr Int32 ->
IO CInt
mainContextPrepare ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> m ((Bool, Int32))
mainContextPrepare :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> m (Bool, Int32)
mainContextPrepare Maybe MainContext
context = IO (Bool, Int32) -> m (Bool, Int32)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Int32) -> m (Bool, Int32))
-> IO (Bool, Int32) -> m (Bool, Int32)
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
priority <- allocMem :: IO (Ptr Int32)
result <- g_main_context_prepare maybeContext priority
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
priority' <- peek priority
whenJust context touchManagedPtr
freeMem priority
return (result', priority')
#if defined(ENABLE_OVERLOADING)
data MainContextPrepareMethodInfo
instance (signature ~ (m ((Bool, Int32))), MonadIO m) => O.OverloadedMethod MainContextPrepareMethodInfo MainContext signature where
overloadedMethod i = mainContextPrepare (Just i)
instance O.OverloadedMethodInfo MainContextPrepareMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextPrepare",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextPrepare"
})
#endif
foreign import ccall "g_main_context_push_thread_default" g_main_context_push_thread_default ::
Ptr MainContext ->
IO ()
mainContextPushThreadDefault ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> m ()
mainContextPushThreadDefault :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> m ()
mainContextPushThreadDefault Maybe MainContext
context = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
g_main_context_push_thread_default maybeContext
whenJust context touchManagedPtr
return ()
#if defined(ENABLE_OVERLOADING)
data MainContextPushThreadDefaultMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod MainContextPushThreadDefaultMethodInfo MainContext signature where
overloadedMethod i = mainContextPushThreadDefault (Just i)
instance O.OverloadedMethodInfo MainContextPushThreadDefaultMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextPushThreadDefault",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextPushThreadDefault"
})
#endif
foreign import ccall "g_main_context_query" g_main_context_query ::
Ptr MainContext ->
Int32 ->
Ptr Int32 ->
Ptr GLib.PollFD.PollFD ->
Int32 ->
IO Int32
mainContextQuery ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> Int32
-> [GLib.PollFD.PollFD]
-> m ((Int32, Int32, [GLib.PollFD.PollFD]))
mainContextQuery :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext
-> Int32 -> [PollFD] -> m (Int32, Int32, [PollFD])
mainContextQuery Maybe MainContext
context Int32
maxPriority [PollFD]
fds = IO (Int32, Int32, [PollFD]) -> m (Int32, Int32, [PollFD])
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Int32, Int32, [PollFD]) -> m (Int32, Int32, [PollFD]))
-> IO (Int32, Int32, [PollFD]) -> m (Int32, Int32, [PollFD])
forall a b. (a -> b) -> a -> b
$ do
let nFds :: Int32
nFds = Int -> Int32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Int32) -> Int -> Int32
forall a b. (a -> b) -> a -> b
$ [PollFD] -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
P.length [PollFD]
fds
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
timeout_ <- allocMem :: IO (Ptr Int32)
fds' <- mapM B.ManagedPtr.disownBoxed fds
fds'' <- packBlockArray 8 fds'
result <- g_main_context_query maybeContext maxPriority timeout_ fds'' nFds
timeout_' <- peek timeout_
fds''' <- (unpackBoxedArrayWithLength 8 nFds) fds''
fds'''' <- mapM (wrapBoxed GLib.PollFD.PollFD) fds'''
freeMem fds''
whenJust context touchManagedPtr
mapM_ touchManagedPtr fds
freeMem timeout_
return (result, timeout_', fds'''')
#if defined(ENABLE_OVERLOADING)
data MainContextQueryMethodInfo
instance (signature ~ (Int32 -> [GLib.PollFD.PollFD] -> m ((Int32, Int32, [GLib.PollFD.PollFD]))), MonadIO m) => O.OverloadedMethod MainContextQueryMethodInfo MainContext signature where
overloadedMethod i = mainContextQuery (Just i)
instance O.OverloadedMethodInfo MainContextQueryMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextQuery",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextQuery"
})
#endif
foreign import ccall "g_main_context_ref" g_main_context_ref ::
Ptr MainContext ->
IO (Ptr MainContext)
mainContextRef ::
(B.CallStack.HasCallStack, MonadIO m) =>
MainContext
-> m MainContext
mainContextRef :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
MainContext -> m MainContext
mainContextRef MainContext
context = IO MainContext -> m MainContext
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MainContext -> m MainContext)
-> IO MainContext -> m MainContext
forall a b. (a -> b) -> a -> b
$ do
context' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
context
result <- g_main_context_ref context'
checkUnexpectedReturnNULL "mainContextRef" result
result' <- (wrapBoxed MainContext) result
touchManagedPtr context
return result'
#if defined(ENABLE_OVERLOADING)
data MainContextRefMethodInfo
instance (signature ~ (m MainContext), MonadIO m) => O.OverloadedMethod MainContextRefMethodInfo MainContext signature where
overloadedMethod = mainContextRef
instance O.OverloadedMethodInfo MainContextRefMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextRef",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextRef"
})
#endif
foreign import ccall "g_main_context_release" g_main_context_release ::
Ptr MainContext ->
IO ()
mainContextRelease ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> m ()
mainContextRelease :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> m ()
mainContextRelease Maybe MainContext
context = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
g_main_context_release maybeContext
whenJust context touchManagedPtr
return ()
#if defined(ENABLE_OVERLOADING)
data MainContextReleaseMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod MainContextReleaseMethodInfo MainContext signature where
overloadedMethod i = mainContextRelease (Just i)
instance O.OverloadedMethodInfo MainContextReleaseMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextRelease",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextRelease"
})
#endif
foreign import ccall "g_main_context_remove_poll" g_main_context_remove_poll ::
Ptr MainContext ->
Ptr GLib.PollFD.PollFD ->
IO ()
mainContextRemovePoll ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> GLib.PollFD.PollFD
-> m ()
mainContextRemovePoll :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> PollFD -> m ()
mainContextRemovePoll Maybe MainContext
context PollFD
fd = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
fd' <- unsafeManagedPtrGetPtr fd
g_main_context_remove_poll maybeContext fd'
whenJust context touchManagedPtr
touchManagedPtr fd
return ()
#if defined(ENABLE_OVERLOADING)
data MainContextRemovePollMethodInfo
instance (signature ~ (GLib.PollFD.PollFD -> m ()), MonadIO m) => O.OverloadedMethod MainContextRemovePollMethodInfo MainContext signature where
overloadedMethod i = mainContextRemovePoll (Just i)
instance O.OverloadedMethodInfo MainContextRemovePollMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextRemovePoll",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextRemovePoll"
})
#endif
foreign import ccall "g_main_context_unref" g_main_context_unref ::
Ptr MainContext ->
IO ()
mainContextUnref ::
(B.CallStack.HasCallStack, MonadIO m) =>
MainContext
-> m ()
mainContextUnref :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
MainContext -> m ()
mainContextUnref MainContext
context = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
context' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
context
g_main_context_unref context'
touchManagedPtr context
return ()
#if defined(ENABLE_OVERLOADING)
data MainContextUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod MainContextUnrefMethodInfo MainContext signature where
overloadedMethod = mainContextUnref
instance O.OverloadedMethodInfo MainContextUnrefMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextUnref",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextUnref"
})
#endif
foreign import ccall "g_main_context_wait" g_main_context_wait ::
Ptr MainContext ->
Ptr GLib.Cond.Cond ->
Ptr GLib.Mutex.Mutex ->
IO CInt
{-# DEPRECATED mainContextWait ["(Since version 2.58)","Use 'GI.GLib.Structs.MainContext.mainContextIsOwner' and separate"," locking instead."] #-}
mainContextWait ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> GLib.Cond.Cond
-> GLib.Mutex.Mutex
-> m Bool
mainContextWait :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> Cond -> Mutex -> m Bool
mainContextWait Maybe MainContext
context Cond
cond Mutex
mutex = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
cond' <- unsafeManagedPtrGetPtr cond
mutex' <- unsafeManagedPtrGetPtr mutex
result <- g_main_context_wait maybeContext cond' mutex'
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
whenJust context touchManagedPtr
touchManagedPtr cond
touchManagedPtr mutex
return result'
#if defined(ENABLE_OVERLOADING)
data MainContextWaitMethodInfo
instance (signature ~ (GLib.Cond.Cond -> GLib.Mutex.Mutex -> m Bool), MonadIO m) => O.OverloadedMethod MainContextWaitMethodInfo MainContext signature where
overloadedMethod i = mainContextWait (Just i)
instance O.OverloadedMethodInfo MainContextWaitMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextWait",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextWait"
})
#endif
foreign import ccall "g_main_context_wakeup" g_main_context_wakeup ::
Ptr MainContext ->
IO ()
mainContextWakeup ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (MainContext)
-> m ()
mainContextWakeup :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe MainContext -> m ()
mainContextWakeup Maybe MainContext
context = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
maybeContext <- case Maybe MainContext
context of
Maybe MainContext
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
FP.nullPtr
Just MainContext
jContext -> do
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
return jContext'
g_main_context_wakeup maybeContext
whenJust context touchManagedPtr
return ()
#if defined(ENABLE_OVERLOADING)
data MainContextWakeupMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod MainContextWakeupMethodInfo MainContext signature where
overloadedMethod i = mainContextWakeup (Just i)
instance O.OverloadedMethodInfo MainContextWakeupMethodInfo MainContext where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.MainContext.mainContextWakeup",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-MainContext.html#v:mainContextWakeup"
})
#endif
foreign import ccall "g_main_context_default" g_main_context_default ::
IO (Ptr MainContext)
mainContextDefault ::
(B.CallStack.HasCallStack, MonadIO m) =>
m MainContext
mainContextDefault :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m MainContext
mainContextDefault = IO MainContext -> m MainContext
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MainContext -> m MainContext)
-> IO MainContext -> m MainContext
forall a b. (a -> b) -> a -> b
$ do
result <- IO (Ptr MainContext)
g_main_context_default
checkUnexpectedReturnNULL "mainContextDefault" result
result' <- (newBoxed MainContext) result
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_main_context_get_thread_default" g_main_context_get_thread_default ::
IO (Ptr MainContext)
mainContextGetThreadDefault ::
(B.CallStack.HasCallStack, MonadIO m) =>
m (Maybe MainContext)
mainContextGetThreadDefault :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
m (Maybe MainContext)
mainContextGetThreadDefault = IO (Maybe MainContext) -> m (Maybe MainContext)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe MainContext) -> m (Maybe MainContext))
-> IO (Maybe MainContext) -> m (Maybe MainContext)
forall a b. (a -> b) -> a -> b
$ do
result <- IO (Ptr MainContext)
g_main_context_get_thread_default
maybeResult <- convertIfNonNull result $ \Ptr MainContext
result' -> do
result'' <- ((ManagedPtr MainContext -> MainContext)
-> Ptr MainContext -> IO MainContext
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr MainContext -> MainContext
MainContext) Ptr MainContext
result'
return result''
return maybeResult
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_main_context_ref_thread_default" g_main_context_ref_thread_default ::
IO (Ptr MainContext)
mainContextRefThreadDefault ::
(B.CallStack.HasCallStack, MonadIO m) =>
m MainContext
mainContextRefThreadDefault :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m MainContext
mainContextRefThreadDefault = IO MainContext -> m MainContext
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MainContext -> m MainContext)
-> IO MainContext -> m MainContext
forall a b. (a -> b) -> a -> b
$ do
result <- IO (Ptr MainContext)
g_main_context_ref_thread_default
checkUnexpectedReturnNULL "mainContextRefThreadDefault" result
result' <- (wrapBoxed MainContext) result
return result'
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveMainContextMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveMainContextMethod "acquire" o = MainContextAcquireMethodInfo
ResolveMainContextMethod "addPoll" o = MainContextAddPollMethodInfo
ResolveMainContextMethod "check" o = MainContextCheckMethodInfo
ResolveMainContextMethod "dispatch" o = MainContextDispatchMethodInfo
ResolveMainContextMethod "findSourceByFuncsUserData" o = MainContextFindSourceByFuncsUserDataMethodInfo
ResolveMainContextMethod "findSourceById" o = MainContextFindSourceByIdMethodInfo
ResolveMainContextMethod "findSourceByUserData" o = MainContextFindSourceByUserDataMethodInfo
ResolveMainContextMethod "invokeFull" o = MainContextInvokeFullMethodInfo
ResolveMainContextMethod "isOwner" o = MainContextIsOwnerMethodInfo
ResolveMainContextMethod "iteration" o = MainContextIterationMethodInfo
ResolveMainContextMethod "pending" o = MainContextPendingMethodInfo
ResolveMainContextMethod "popThreadDefault" o = MainContextPopThreadDefaultMethodInfo
ResolveMainContextMethod "prepare" o = MainContextPrepareMethodInfo
ResolveMainContextMethod "pushThreadDefault" o = MainContextPushThreadDefaultMethodInfo
ResolveMainContextMethod "query" o = MainContextQueryMethodInfo
ResolveMainContextMethod "ref" o = MainContextRefMethodInfo
ResolveMainContextMethod "release" o = MainContextReleaseMethodInfo
ResolveMainContextMethod "removePoll" o = MainContextRemovePollMethodInfo
ResolveMainContextMethod "unref" o = MainContextUnrefMethodInfo
ResolveMainContextMethod "wait" o = MainContextWaitMethodInfo
ResolveMainContextMethod "wakeup" o = MainContextWakeupMethodInfo
ResolveMainContextMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveMainContextMethod t MainContext, O.OverloadedMethod info MainContext p) => OL.IsLabel t (MainContext -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveMainContextMethod t MainContext, O.OverloadedMethod info MainContext p, R.HasField t MainContext p) => R.HasField t MainContext p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveMainContextMethod t MainContext, O.OverloadedMethodInfo info MainContext) => OL.IsLabel t (O.MethodProxy info MainContext) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif