gi-gio-0.2.44.12: GI/Gio/Objects/Cancellable.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}
module GI.Gio.Objects.Cancellable
(
-- * Exported types
Cancellable(..) ,
CancellableK ,
toCancellable ,
noCancellable ,
-- * Methods
-- ** cancellableCancel
cancellableCancel ,
-- ** cancellableConnect
cancellableConnect ,
-- ** cancellableDisconnect
cancellableDisconnect ,
-- ** cancellableGetCurrent
cancellableGetCurrent ,
-- ** cancellableGetFd
cancellableGetFd ,
-- ** cancellableIsCancelled
cancellableIsCancelled ,
-- ** cancellableMakePollfd
cancellableMakePollfd ,
-- ** cancellableNew
cancellableNew ,
-- ** cancellablePopCurrent
cancellablePopCurrent ,
-- ** cancellablePushCurrent
cancellablePushCurrent ,
-- ** cancellableReleaseFd
cancellableReleaseFd ,
-- ** cancellableReset
cancellableReset ,
-- ** cancellableSetErrorIfCancelled
cancellableSetErrorIfCancelled ,
-- * Signals
-- ** Cancelled
CancellableCancelledCallback ,
CancellableCancelledCallbackC ,
CancellableCancelledSignalInfo ,
afterCancellableCancelled ,
cancellableCancelledCallbackWrapper ,
cancellableCancelledClosure ,
mkCancellableCancelledCallback ,
noCancellableCancelledCallback ,
onCancellableCancelled ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Gio.Types
import GI.Gio.Callbacks
import qualified GI.GLib as GLib
import qualified GI.GObject as GObject
newtype Cancellable = Cancellable (ForeignPtr Cancellable)
foreign import ccall "g_cancellable_get_type"
c_g_cancellable_get_type :: IO GType
type instance ParentTypes Cancellable = CancellableParentTypes
type CancellableParentTypes = '[GObject.Object]
instance GObject Cancellable where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_g_cancellable_get_type
class GObject o => CancellableK o
instance (GObject o, IsDescendantOf Cancellable o) => CancellableK o
toCancellable :: CancellableK o => o -> IO Cancellable
toCancellable = unsafeCastTo Cancellable
noCancellable :: Maybe Cancellable
noCancellable = Nothing
-- signal Cancellable::cancelled
type CancellableCancelledCallback =
IO ()
noCancellableCancelledCallback :: Maybe CancellableCancelledCallback
noCancellableCancelledCallback = Nothing
type CancellableCancelledCallbackC =
Ptr () -> -- object
Ptr () -> -- user_data
IO ()
foreign import ccall "wrapper"
mkCancellableCancelledCallback :: CancellableCancelledCallbackC -> IO (FunPtr CancellableCancelledCallbackC)
cancellableCancelledClosure :: CancellableCancelledCallback -> IO Closure
cancellableCancelledClosure cb = newCClosure =<< mkCancellableCancelledCallback wrapped
where wrapped = cancellableCancelledCallbackWrapper cb
cancellableCancelledCallbackWrapper ::
CancellableCancelledCallback ->
Ptr () ->
Ptr () ->
IO ()
cancellableCancelledCallbackWrapper _cb _ _ = do
_cb
onCancellableCancelled :: (GObject a, MonadIO m) => a -> CancellableCancelledCallback -> m SignalHandlerId
onCancellableCancelled obj cb = liftIO $ connectCancellableCancelled obj cb SignalConnectBefore
afterCancellableCancelled :: (GObject a, MonadIO m) => a -> CancellableCancelledCallback -> m SignalHandlerId
afterCancellableCancelled obj cb = connectCancellableCancelled obj cb SignalConnectAfter
connectCancellableCancelled :: (GObject a, MonadIO m) =>
a -> CancellableCancelledCallback -> SignalConnectMode -> m SignalHandlerId
connectCancellableCancelled obj cb after = liftIO $ do
cb' <- mkCancellableCancelledCallback (cancellableCancelledCallbackWrapper cb)
connectSignalFunPtr obj "cancelled" cb' after
type instance AttributeList Cancellable = CancellableAttributeList
type CancellableAttributeList = ('[ ] :: [(Symbol, *)])
data CancellableCancelledSignalInfo
instance SignalInfo CancellableCancelledSignalInfo where
type HaskellCallbackType CancellableCancelledSignalInfo = CancellableCancelledCallback
connectSignal _ = connectCancellableCancelled
type instance SignalList Cancellable = CancellableSignalList
type CancellableSignalList = ('[ '("cancelled", CancellableCancelledSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
-- method Cancellable::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TInterface "Gio" "Cancellable"
-- throws : False
-- Skip return : False
foreign import ccall "g_cancellable_new" g_cancellable_new ::
IO (Ptr Cancellable)
cancellableNew ::
(MonadIO m) =>
m Cancellable
cancellableNew = liftIO $ do
result <- g_cancellable_new
checkUnexpectedReturnNULL "g_cancellable_new" result
result' <- (wrapObject Cancellable) result
return result'
-- method Cancellable::cancel
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_cancellable_cancel" g_cancellable_cancel ::
Ptr Cancellable -> -- _obj : TInterface "Gio" "Cancellable"
IO ()
cancellableCancel ::
(MonadIO m, CancellableK a) =>
a -> -- _obj
m ()
cancellableCancel _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
g_cancellable_cancel _obj'
touchManagedPtr _obj
return ()
-- method Cancellable::connect
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "GObject" "Callback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data_destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "GObject" "Callback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
-- returnType : TBasicType TUInt64
-- throws : False
-- Skip return : False
foreign import ccall "g_cancellable_connect" g_cancellable_connect ::
Ptr Cancellable -> -- _obj : TInterface "Gio" "Cancellable"
FunPtr GObject.CallbackC -> -- callback : TInterface "GObject" "Callback"
Ptr () -> -- data : TBasicType TVoid
FunPtr GLib.DestroyNotifyC -> -- data_destroy_func : TInterface "GLib" "DestroyNotify"
IO Word64
cancellableConnect ::
(MonadIO m, CancellableK a) =>
a -> -- _obj
GObject.Callback -> -- callback
m Word64
cancellableConnect _obj callback = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
callback' <- GObject.mkCallback (GObject.callbackWrapper Nothing callback)
let data_ = castFunPtrToPtr callback'
let data_destroy_func = safeFreeFunPtrPtr
result <- g_cancellable_connect _obj' callback' data_ data_destroy_func
touchManagedPtr _obj
return result
-- method Cancellable::disconnect
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_id", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_id", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_cancellable_disconnect" g_cancellable_disconnect ::
Ptr Cancellable -> -- _obj : TInterface "Gio" "Cancellable"
Word64 -> -- handler_id : TBasicType TUInt64
IO ()
cancellableDisconnect ::
(MonadIO m, CancellableK a) =>
a -> -- _obj
Word64 -> -- handler_id
m ()
cancellableDisconnect _obj handler_id = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
g_cancellable_disconnect _obj' handler_id
touchManagedPtr _obj
return ()
-- method Cancellable::get_fd
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False
foreign import ccall "g_cancellable_get_fd" g_cancellable_get_fd ::
Ptr Cancellable -> -- _obj : TInterface "Gio" "Cancellable"
IO Int32
cancellableGetFd ::
(MonadIO m, CancellableK a) =>
a -> -- _obj
m Int32
cancellableGetFd _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_cancellable_get_fd _obj'
touchManagedPtr _obj
return result
-- method Cancellable::is_cancelled
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "g_cancellable_is_cancelled" g_cancellable_is_cancelled ::
Ptr Cancellable -> -- _obj : TInterface "Gio" "Cancellable"
IO CInt
cancellableIsCancelled ::
(MonadIO m, CancellableK a) =>
a -> -- _obj
m Bool
cancellableIsCancelled _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_cancellable_is_cancelled _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
-- method Cancellable::make_pollfd
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pollfd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pollfd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "g_cancellable_make_pollfd" g_cancellable_make_pollfd ::
Ptr Cancellable -> -- _obj : TInterface "Gio" "Cancellable"
Ptr GLib.PollFD -> -- pollfd : TInterface "GLib" "PollFD"
IO CInt
cancellableMakePollfd ::
(MonadIO m, CancellableK a) =>
a -> -- _obj
GLib.PollFD -> -- pollfd
m Bool
cancellableMakePollfd _obj pollfd = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let pollfd' = unsafeManagedPtrGetPtr pollfd
result <- g_cancellable_make_pollfd _obj' pollfd'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr pollfd
return result'
-- method Cancellable::pop_current
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_cancellable_pop_current" g_cancellable_pop_current ::
Ptr Cancellable -> -- _obj : TInterface "Gio" "Cancellable"
IO ()
cancellablePopCurrent ::
(MonadIO m, CancellableK a) =>
a -> -- _obj
m ()
cancellablePopCurrent _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
g_cancellable_pop_current _obj'
touchManagedPtr _obj
return ()
-- method Cancellable::push_current
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_cancellable_push_current" g_cancellable_push_current ::
Ptr Cancellable -> -- _obj : TInterface "Gio" "Cancellable"
IO ()
cancellablePushCurrent ::
(MonadIO m, CancellableK a) =>
a -> -- _obj
m ()
cancellablePushCurrent _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
g_cancellable_push_current _obj'
touchManagedPtr _obj
return ()
-- method Cancellable::release_fd
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_cancellable_release_fd" g_cancellable_release_fd ::
Ptr Cancellable -> -- _obj : TInterface "Gio" "Cancellable"
IO ()
cancellableReleaseFd ::
(MonadIO m, CancellableK a) =>
a -> -- _obj
m ()
cancellableReleaseFd _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
g_cancellable_release_fd _obj'
touchManagedPtr _obj
return ()
-- method Cancellable::reset
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_cancellable_reset" g_cancellable_reset ::
Ptr Cancellable -> -- _obj : TInterface "Gio" "Cancellable"
IO ()
cancellableReset ::
(MonadIO m, CancellableK a) =>
a -> -- _obj
m ()
cancellableReset _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
g_cancellable_reset _obj'
touchManagedPtr _obj
return ()
-- method Cancellable::set_error_if_cancelled
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False
foreign import ccall "g_cancellable_set_error_if_cancelled" g_cancellable_set_error_if_cancelled ::
Ptr Cancellable -> -- _obj : TInterface "Gio" "Cancellable"
Ptr (Ptr GError) -> -- error
IO CInt
cancellableSetErrorIfCancelled ::
(MonadIO m, CancellableK a) =>
a -> -- _obj
m ()
cancellableSetErrorIfCancelled _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
onException (do
_ <- propagateGError $ g_cancellable_set_error_if_cancelled _obj'
touchManagedPtr _obj
return ()
) (do
return ()
)
-- method Cancellable::get_current
-- method type : MemberFunction
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TInterface "Gio" "Cancellable"
-- throws : False
-- Skip return : False
foreign import ccall "g_cancellable_get_current" g_cancellable_get_current ::
IO (Ptr Cancellable)
cancellableGetCurrent ::
(MonadIO m) =>
m Cancellable
cancellableGetCurrent = liftIO $ do
result <- g_cancellable_get_current
checkUnexpectedReturnNULL "g_cancellable_get_current" result
result' <- (newObject Cancellable) result
return result'