gi-glib-0.2.46.12: GI/GLib/Structs/AsyncQueue.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)
The GAsyncQueue struct is an opaque data structure which represents
an asynchronous queue. It should only be accessed through the
g_async_queue_* functions.
-}
module GI.GLib.Structs.AsyncQueue
(
-- * Exported types
AsyncQueue(..) ,
noAsyncQueue ,
-- * Methods
-- ** asyncQueueLength
asyncQueueLength ,
-- ** asyncQueueLengthUnlocked
asyncQueueLengthUnlocked ,
-- ** asyncQueueLock
asyncQueueLock ,
-- ** asyncQueuePush
asyncQueuePush ,
-- ** asyncQueuePushFront
asyncQueuePushFront ,
-- ** asyncQueuePushFrontUnlocked
asyncQueuePushFrontUnlocked ,
-- ** asyncQueuePushUnlocked
asyncQueuePushUnlocked ,
-- ** asyncQueueRefUnlocked
asyncQueueRefUnlocked ,
-- ** asyncQueueRemove
asyncQueueRemove ,
-- ** asyncQueueRemoveUnlocked
asyncQueueRemoveUnlocked ,
-- ** asyncQueueUnlock
asyncQueueUnlock ,
-- ** asyncQueueUnref
asyncQueueUnref ,
-- ** asyncQueueUnrefAndUnlock
asyncQueueUnrefAndUnlock ,
) 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.GLib.Types
import GI.GLib.Callbacks
newtype AsyncQueue = AsyncQueue (ForeignPtr AsyncQueue)
noAsyncQueue :: Maybe AsyncQueue
noAsyncQueue = Nothing
-- method AsyncQueue::length
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False
foreign import ccall "g_async_queue_length" g_async_queue_length ::
Ptr AsyncQueue -> -- _obj : TInterface "GLib" "AsyncQueue"
IO Int32
asyncQueueLength ::
(MonadIO m) =>
AsyncQueue -> -- _obj
m Int32
asyncQueueLength _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- g_async_queue_length _obj'
touchManagedPtr _obj
return result
-- method AsyncQueue::length_unlocked
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False
foreign import ccall "g_async_queue_length_unlocked" g_async_queue_length_unlocked ::
Ptr AsyncQueue -> -- _obj : TInterface "GLib" "AsyncQueue"
IO Int32
asyncQueueLengthUnlocked ::
(MonadIO m) =>
AsyncQueue -> -- _obj
m Int32
asyncQueueLengthUnlocked _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- g_async_queue_length_unlocked _obj'
touchManagedPtr _obj
return result
-- method AsyncQueue::lock
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_async_queue_lock" g_async_queue_lock ::
Ptr AsyncQueue -> -- _obj : TInterface "GLib" "AsyncQueue"
IO ()
asyncQueueLock ::
(MonadIO m) =>
AsyncQueue -> -- _obj
m ()
asyncQueueLock _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
g_async_queue_lock _obj'
touchManagedPtr _obj
return ()
-- method AsyncQueue::push
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_async_queue_push" g_async_queue_push ::
Ptr AsyncQueue -> -- _obj : TInterface "GLib" "AsyncQueue"
Ptr () -> -- data : TBasicType TVoid
IO ()
asyncQueuePush ::
(MonadIO m) =>
AsyncQueue -> -- _obj
Ptr () -> -- data
m ()
asyncQueuePush _obj data_ = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
g_async_queue_push _obj' data_
touchManagedPtr _obj
return ()
-- method AsyncQueue::push_front
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_async_queue_push_front" g_async_queue_push_front ::
Ptr AsyncQueue -> -- _obj : TInterface "GLib" "AsyncQueue"
Ptr () -> -- item : TBasicType TVoid
IO ()
asyncQueuePushFront ::
(MonadIO m) =>
AsyncQueue -> -- _obj
Ptr () -> -- item
m ()
asyncQueuePushFront _obj item = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
g_async_queue_push_front _obj' item
touchManagedPtr _obj
return ()
-- method AsyncQueue::push_front_unlocked
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_async_queue_push_front_unlocked" g_async_queue_push_front_unlocked ::
Ptr AsyncQueue -> -- _obj : TInterface "GLib" "AsyncQueue"
Ptr () -> -- item : TBasicType TVoid
IO ()
asyncQueuePushFrontUnlocked ::
(MonadIO m) =>
AsyncQueue -> -- _obj
Ptr () -> -- item
m ()
asyncQueuePushFrontUnlocked _obj item = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
g_async_queue_push_front_unlocked _obj' item
touchManagedPtr _obj
return ()
-- method AsyncQueue::push_unlocked
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_async_queue_push_unlocked" g_async_queue_push_unlocked ::
Ptr AsyncQueue -> -- _obj : TInterface "GLib" "AsyncQueue"
Ptr () -> -- data : TBasicType TVoid
IO ()
asyncQueuePushUnlocked ::
(MonadIO m) =>
AsyncQueue -> -- _obj
Ptr () -> -- data
m ()
asyncQueuePushUnlocked _obj data_ = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
g_async_queue_push_unlocked _obj' data_
touchManagedPtr _obj
return ()
-- method AsyncQueue::ref_unlocked
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_async_queue_ref_unlocked" g_async_queue_ref_unlocked ::
Ptr AsyncQueue -> -- _obj : TInterface "GLib" "AsyncQueue"
IO ()
{-# DEPRECATED asyncQueueRefUnlocked ["(Since version 2.8)","Reference counting is done atomically.","so g_async_queue_ref() can be used regardless of the @queue's","lock."]#-}
asyncQueueRefUnlocked ::
(MonadIO m) =>
AsyncQueue -> -- _obj
m ()
asyncQueueRefUnlocked _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
g_async_queue_ref_unlocked _obj'
touchManagedPtr _obj
return ()
-- method AsyncQueue::remove
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "g_async_queue_remove" g_async_queue_remove ::
Ptr AsyncQueue -> -- _obj : TInterface "GLib" "AsyncQueue"
Ptr () -> -- item : TBasicType TVoid
IO CInt
asyncQueueRemove ::
(MonadIO m) =>
AsyncQueue -> -- _obj
Ptr () -> -- item
m Bool
asyncQueueRemove _obj item = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- g_async_queue_remove _obj' item
let result' = (/= 0) result
touchManagedPtr _obj
return result'
-- method AsyncQueue::remove_unlocked
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "g_async_queue_remove_unlocked" g_async_queue_remove_unlocked ::
Ptr AsyncQueue -> -- _obj : TInterface "GLib" "AsyncQueue"
Ptr () -> -- item : TBasicType TVoid
IO CInt
asyncQueueRemoveUnlocked ::
(MonadIO m) =>
AsyncQueue -> -- _obj
Ptr () -> -- item
m Bool
asyncQueueRemoveUnlocked _obj item = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- g_async_queue_remove_unlocked _obj' item
let result' = (/= 0) result
touchManagedPtr _obj
return result'
-- method AsyncQueue::unlock
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_async_queue_unlock" g_async_queue_unlock ::
Ptr AsyncQueue -> -- _obj : TInterface "GLib" "AsyncQueue"
IO ()
asyncQueueUnlock ::
(MonadIO m) =>
AsyncQueue -> -- _obj
m ()
asyncQueueUnlock _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
g_async_queue_unlock _obj'
touchManagedPtr _obj
return ()
-- method AsyncQueue::unref
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_async_queue_unref" g_async_queue_unref ::
Ptr AsyncQueue -> -- _obj : TInterface "GLib" "AsyncQueue"
IO ()
asyncQueueUnref ::
(MonadIO m) =>
AsyncQueue -> -- _obj
m ()
asyncQueueUnref _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
g_async_queue_unref _obj'
touchManagedPtr _obj
return ()
-- method AsyncQueue::unref_and_unlock
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_async_queue_unref_and_unlock" g_async_queue_unref_and_unlock ::
Ptr AsyncQueue -> -- _obj : TInterface "GLib" "AsyncQueue"
IO ()
{-# DEPRECATED asyncQueueUnrefAndUnlock ["(Since version 2.8)","Reference counting is done atomically.","so g_async_queue_unref() can be used regardless of the @queue's","lock."]#-}
asyncQueueUnrefAndUnlock ::
(MonadIO m) =>
AsyncQueue -> -- _obj
m ()
asyncQueueUnrefAndUnlock _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
g_async_queue_unref_and_unlock _obj'
touchManagedPtr _obj
return ()