gi-glib-2.0.19: GI/GLib/Structs/Queue.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
Contains the public fields of a
[Queue][glib-Double-ended-Queues].
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.GLib.Structs.Queue
(
-- * Exported types
Queue(..) ,
newZeroQueue ,
noQueue ,
-- * Methods
-- ** clear #method:clear#
#if ENABLE_OVERLOADING
QueueClearMethodInfo ,
#endif
queueClear ,
-- ** clearFull #method:clearFull#
#if ENABLE_OVERLOADING
QueueClearFullMethodInfo ,
#endif
queueClearFull ,
-- ** free #method:free#
#if ENABLE_OVERLOADING
QueueFreeMethodInfo ,
#endif
queueFree ,
-- ** freeFull #method:freeFull#
#if ENABLE_OVERLOADING
QueueFreeFullMethodInfo ,
#endif
queueFreeFull ,
-- ** getLength #method:getLength#
#if ENABLE_OVERLOADING
QueueGetLengthMethodInfo ,
#endif
queueGetLength ,
-- ** index #method:index#
#if ENABLE_OVERLOADING
QueueIndexMethodInfo ,
#endif
queueIndex ,
-- ** init #method:init#
#if ENABLE_OVERLOADING
QueueInitMethodInfo ,
#endif
queueInit ,
-- ** isEmpty #method:isEmpty#
#if ENABLE_OVERLOADING
QueueIsEmptyMethodInfo ,
#endif
queueIsEmpty ,
-- ** peekHead #method:peekHead#
#if ENABLE_OVERLOADING
QueuePeekHeadMethodInfo ,
#endif
queuePeekHead ,
-- ** peekNth #method:peekNth#
#if ENABLE_OVERLOADING
QueuePeekNthMethodInfo ,
#endif
queuePeekNth ,
-- ** peekTail #method:peekTail#
#if ENABLE_OVERLOADING
QueuePeekTailMethodInfo ,
#endif
queuePeekTail ,
-- ** popHead #method:popHead#
#if ENABLE_OVERLOADING
QueuePopHeadMethodInfo ,
#endif
queuePopHead ,
-- ** popNth #method:popNth#
#if ENABLE_OVERLOADING
QueuePopNthMethodInfo ,
#endif
queuePopNth ,
-- ** popTail #method:popTail#
#if ENABLE_OVERLOADING
QueuePopTailMethodInfo ,
#endif
queuePopTail ,
-- ** pushHead #method:pushHead#
#if ENABLE_OVERLOADING
QueuePushHeadMethodInfo ,
#endif
queuePushHead ,
-- ** pushNth #method:pushNth#
#if ENABLE_OVERLOADING
QueuePushNthMethodInfo ,
#endif
queuePushNth ,
-- ** pushTail #method:pushTail#
#if ENABLE_OVERLOADING
QueuePushTailMethodInfo ,
#endif
queuePushTail ,
-- ** remove #method:remove#
#if ENABLE_OVERLOADING
QueueRemoveMethodInfo ,
#endif
queueRemove ,
-- ** removeAll #method:removeAll#
#if ENABLE_OVERLOADING
QueueRemoveAllMethodInfo ,
#endif
queueRemoveAll ,
-- ** reverse #method:reverse#
#if ENABLE_OVERLOADING
QueueReverseMethodInfo ,
#endif
queueReverse ,
-- * Properties
-- ** head #attr:head#
{- | a pointer to the first element of the queue
-}
clearQueueHead ,
getQueueHead ,
#if ENABLE_OVERLOADING
queue_head ,
#endif
setQueueHead ,
-- ** length #attr:length#
{- | the number of elements in the queue
-}
getQueueLength ,
#if ENABLE_OVERLOADING
queue_length ,
#endif
setQueueLength ,
-- ** tail #attr:tail#
{- | a pointer to the last element of the queue
-}
clearQueueTail ,
getQueueTail ,
#if ENABLE_OVERLOADING
queue_tail ,
#endif
setQueueTail ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.GLib.Callbacks as GLib.Callbacks
-- | Memory-managed wrapper type.
newtype Queue = Queue (ManagedPtr Queue)
instance WrappedPtr Queue where
wrappedPtrCalloc = callocBytes 24
wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 24 >=> wrapPtr Queue)
wrappedPtrFree = Just ptr_to_g_free
-- | Construct a `Queue` struct initialized to zero.
newZeroQueue :: MonadIO m => m Queue
newZeroQueue = liftIO $ wrappedPtrCalloc >>= wrapPtr Queue
instance tag ~ 'AttrSet => Constructible Queue tag where
new _ attrs = do
o <- newZeroQueue
GI.Attributes.set o attrs
return o
-- | A convenience alias for `Nothing` :: `Maybe` `Queue`.
noQueue :: Maybe Queue
noQueue = Nothing
{- |
Get the value of the “@head@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' queue #head
@
-}
getQueueHead :: MonadIO m => Queue -> m ([Ptr ()])
getQueueHead s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO (Ptr (GList (Ptr ())))
val' <- unpackGList val
return val'
{- |
Set the value of the “@head@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' queue [ #head 'Data.GI.Base.Attributes.:=' value ]
@
-}
setQueueHead :: MonadIO m => Queue -> Ptr (GList (Ptr ())) -> m ()
setQueueHead s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: Ptr (GList (Ptr ())))
{- |
Set the value of the “@head@” field to `Nothing`.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.clear' #head
@
-}
clearQueueHead :: MonadIO m => Queue -> m ()
clearQueueHead s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (FP.nullPtr :: Ptr (GList (Ptr ())))
#if ENABLE_OVERLOADING
data QueueHeadFieldInfo
instance AttrInfo QueueHeadFieldInfo where
type AttrAllowedOps QueueHeadFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint QueueHeadFieldInfo = (~) (Ptr (GList (Ptr ())))
type AttrBaseTypeConstraint QueueHeadFieldInfo = (~) Queue
type AttrGetType QueueHeadFieldInfo = [Ptr ()]
type AttrLabel QueueHeadFieldInfo = "head"
type AttrOrigin QueueHeadFieldInfo = Queue
attrGet _ = getQueueHead
attrSet _ = setQueueHead
attrConstruct = undefined
attrClear _ = clearQueueHead
queue_head :: AttrLabelProxy "head"
queue_head = AttrLabelProxy
#endif
{- |
Get the value of the “@tail@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' queue #tail
@
-}
getQueueTail :: MonadIO m => Queue -> m ([Ptr ()])
getQueueTail s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO (Ptr (GList (Ptr ())))
val' <- unpackGList val
return val'
{- |
Set the value of the “@tail@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' queue [ #tail 'Data.GI.Base.Attributes.:=' value ]
@
-}
setQueueTail :: MonadIO m => Queue -> Ptr (GList (Ptr ())) -> m ()
setQueueTail s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Ptr (GList (Ptr ())))
{- |
Set the value of the “@tail@” field to `Nothing`.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.clear' #tail
@
-}
clearQueueTail :: MonadIO m => Queue -> m ()
clearQueueTail s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (FP.nullPtr :: Ptr (GList (Ptr ())))
#if ENABLE_OVERLOADING
data QueueTailFieldInfo
instance AttrInfo QueueTailFieldInfo where
type AttrAllowedOps QueueTailFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint QueueTailFieldInfo = (~) (Ptr (GList (Ptr ())))
type AttrBaseTypeConstraint QueueTailFieldInfo = (~) Queue
type AttrGetType QueueTailFieldInfo = [Ptr ()]
type AttrLabel QueueTailFieldInfo = "tail"
type AttrOrigin QueueTailFieldInfo = Queue
attrGet _ = getQueueTail
attrSet _ = setQueueTail
attrConstruct = undefined
attrClear _ = clearQueueTail
queue_tail :: AttrLabelProxy "tail"
queue_tail = AttrLabelProxy
#endif
{- |
Get the value of the “@length@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' queue #length
@
-}
getQueueLength :: MonadIO m => Queue -> m Word32
getQueueLength s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Word32
return val
{- |
Set the value of the “@length@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' queue [ #length 'Data.GI.Base.Attributes.:=' value ]
@
-}
setQueueLength :: MonadIO m => Queue -> Word32 -> m ()
setQueueLength s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Word32)
#if ENABLE_OVERLOADING
data QueueLengthFieldInfo
instance AttrInfo QueueLengthFieldInfo where
type AttrAllowedOps QueueLengthFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint QueueLengthFieldInfo = (~) Word32
type AttrBaseTypeConstraint QueueLengthFieldInfo = (~) Queue
type AttrGetType QueueLengthFieldInfo = Word32
type AttrLabel QueueLengthFieldInfo = "length"
type AttrOrigin QueueLengthFieldInfo = Queue
attrGet _ = getQueueLength
attrSet _ = setQueueLength
attrConstruct = undefined
attrClear _ = undefined
queue_length :: AttrLabelProxy "length"
queue_length = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList Queue
type instance O.AttributeList Queue = QueueAttributeList
type QueueAttributeList = ('[ '("head", QueueHeadFieldInfo), '("tail", QueueTailFieldInfo), '("length", QueueLengthFieldInfo)] :: [(Symbol, *)])
#endif
-- method Queue::clear
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_clear" g_queue_clear ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
IO ()
{- |
Removes all the elements in /@queue@/. If queue elements contain
dynamically-allocated memory, they should be freed first.
/Since: 2.14/
-}
queueClear ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> m ()
queueClear queue = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
g_queue_clear queue'
touchManagedPtr queue
return ()
#if ENABLE_OVERLOADING
data QueueClearMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo QueueClearMethodInfo Queue signature where
overloadedMethod _ = queueClear
#endif
-- method Queue::clear_full
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a pointer to a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "free_func", argType = TInterface (Name {namespace = "GLib", name = "DestroyNotify"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the function to be called to free memory allocated", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_clear_full" g_queue_clear_full ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
FunPtr GLib.Callbacks.C_DestroyNotify -> -- free_func : TInterface (Name {namespace = "GLib", name = "DestroyNotify"})
IO ()
{- |
Convenience method, which frees all the memory used by a 'GI.GLib.Structs.Queue.Queue',
and calls the provided /@freeFunc@/ on each item in the 'GI.GLib.Structs.Queue.Queue'.
/Since: 2.60/
-}
queueClearFull ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a pointer to a 'GI.GLib.Structs.Queue.Queue' -}
-> Maybe (GLib.Callbacks.DestroyNotify)
{- ^ /@freeFunc@/: the function to be called to free memory allocated -}
-> m ()
queueClearFull queue freeFunc = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
maybeFreeFunc <- case freeFunc of
Nothing -> return (castPtrToFunPtr nullPtr)
Just jFreeFunc -> do
ptrfreeFunc <- callocMem :: IO (Ptr (FunPtr GLib.Callbacks.C_DestroyNotify))
jFreeFunc' <- GLib.Callbacks.mk_DestroyNotify (GLib.Callbacks.wrap_DestroyNotify (Just ptrfreeFunc) jFreeFunc)
poke ptrfreeFunc jFreeFunc'
return jFreeFunc'
g_queue_clear_full queue' maybeFreeFunc
touchManagedPtr queue
return ()
#if ENABLE_OVERLOADING
data QueueClearFullMethodInfo
instance (signature ~ (Maybe (GLib.Callbacks.DestroyNotify) -> m ()), MonadIO m) => O.MethodInfo QueueClearFullMethodInfo Queue signature where
overloadedMethod _ = queueClearFull
#endif
-- method Queue::free
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_free" g_queue_free ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
IO ()
{- |
Frees the memory allocated for the 'GI.GLib.Structs.Queue.Queue'. Only call this function
if /@queue@/ was created with @/g_queue_new()/@. If queue elements contain
dynamically-allocated memory, they should be freed first.
If queue elements contain dynamically-allocated memory, you should
either use 'GI.GLib.Structs.Queue.queueFreeFull' or free them manually first.
-}
queueFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> m ()
queueFree queue = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
g_queue_free queue'
touchManagedPtr queue
return ()
#if ENABLE_OVERLOADING
data QueueFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo QueueFreeMethodInfo Queue signature where
overloadedMethod _ = queueFree
#endif
-- method Queue::free_full
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a pointer to a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "free_func", argType = TInterface (Name {namespace = "GLib", name = "DestroyNotify"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the function to be called to free each element's data", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_free_full" g_queue_free_full ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
FunPtr GLib.Callbacks.C_DestroyNotify -> -- free_func : TInterface (Name {namespace = "GLib", name = "DestroyNotify"})
IO ()
{- |
Convenience method, which frees all the memory used by a 'GI.GLib.Structs.Queue.Queue',
and calls the specified destroy function on every element\'s data.
/@freeFunc@/ should not modify the queue (eg, by removing the freed
element from it).
/Since: 2.32/
-}
queueFreeFull ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a pointer to a 'GI.GLib.Structs.Queue.Queue' -}
-> GLib.Callbacks.DestroyNotify
{- ^ /@freeFunc@/: the function to be called to free each element\'s data -}
-> m ()
queueFreeFull queue freeFunc = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
ptrfreeFunc <- callocMem :: IO (Ptr (FunPtr GLib.Callbacks.C_DestroyNotify))
freeFunc' <- GLib.Callbacks.mk_DestroyNotify (GLib.Callbacks.wrap_DestroyNotify (Just ptrfreeFunc) freeFunc)
poke ptrfreeFunc freeFunc'
g_queue_free_full queue' freeFunc'
touchManagedPtr queue
return ()
#if ENABLE_OVERLOADING
data QueueFreeFullMethodInfo
instance (signature ~ (GLib.Callbacks.DestroyNotify -> m ()), MonadIO m) => O.MethodInfo QueueFreeFullMethodInfo Queue signature where
overloadedMethod _ = queueFreeFull
#endif
-- method Queue::get_length
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt)
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_get_length" g_queue_get_length ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
IO Word32
{- |
Returns the number of items in /@queue@/.
/Since: 2.4/
-}
queueGetLength ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> m Word32
{- ^ __Returns:__ the number of items in /@queue@/ -}
queueGetLength queue = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
result <- g_queue_get_length queue'
touchManagedPtr queue
return result
#if ENABLE_OVERLOADING
data QueueGetLengthMethodInfo
instance (signature ~ (m Word32), MonadIO m) => O.MethodInfo QueueGetLengthMethodInfo Queue signature where
overloadedMethod _ = queueGetLength
#endif
-- method Queue::index
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the data to find", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_index" g_queue_index ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
Ptr () -> -- data : TBasicType TPtr
IO Int32
{- |
Returns the position of the first element in /@queue@/ which contains /@data@/.
/Since: 2.4/
-}
queueIndex ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> Ptr ()
{- ^ /@data@/: the data to find -}
-> m Int32
{- ^ __Returns:__ the position of the first element in /@queue@/ which
contains /@data@/, or -1 if no element in /@queue@/ contains /@data@/ -}
queueIndex queue data_ = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
result <- g_queue_index queue' data_
touchManagedPtr queue
return result
#if ENABLE_OVERLOADING
data QueueIndexMethodInfo
instance (signature ~ (Ptr () -> m Int32), MonadIO m) => O.MethodInfo QueueIndexMethodInfo Queue signature where
overloadedMethod _ = queueIndex
#endif
-- method Queue::init
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an uninitialized #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_init" g_queue_init ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
IO ()
{- |
A statically-allocated 'GI.GLib.Structs.Queue.Queue' must be initialized with this function
before it can be used. Alternatively you can initialize it with
@/G_QUEUE_INIT/@. It is not necessary to initialize queues created with
@/g_queue_new()/@.
/Since: 2.14/
-}
queueInit ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: an uninitialized 'GI.GLib.Structs.Queue.Queue' -}
-> m ()
queueInit queue = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
g_queue_init queue'
touchManagedPtr queue
return ()
#if ENABLE_OVERLOADING
data QueueInitMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo QueueInitMethodInfo Queue signature where
overloadedMethod _ = queueInit
#endif
-- method Queue::is_empty
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_is_empty" g_queue_is_empty ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
IO CInt
{- |
Returns 'True' if the queue is empty.
-}
queueIsEmpty ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue'. -}
-> m Bool
{- ^ __Returns:__ 'True' if the queue is empty -}
queueIsEmpty queue = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
result <- g_queue_is_empty queue'
let result' = (/= 0) result
touchManagedPtr queue
return result'
#if ENABLE_OVERLOADING
data QueueIsEmptyMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo QueueIsEmptyMethodInfo Queue signature where
overloadedMethod _ = queueIsEmpty
#endif
-- method Queue::peek_head
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TPtr)
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_peek_head" g_queue_peek_head ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
IO (Ptr ())
{- |
Returns the first element of the queue.
-}
queuePeekHead ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> m (Ptr ())
{- ^ __Returns:__ the data of the first element in the queue, or 'Nothing'
if the queue is empty -}
queuePeekHead queue = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
result <- g_queue_peek_head queue'
touchManagedPtr queue
return result
#if ENABLE_OVERLOADING
data QueuePeekHeadMethodInfo
instance (signature ~ (m (Ptr ())), MonadIO m) => O.MethodInfo QueuePeekHeadMethodInfo Queue signature where
overloadedMethod _ = queuePeekHead
#endif
-- method Queue::peek_nth
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the position of the element", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TPtr)
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_peek_nth" g_queue_peek_nth ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
Word32 -> -- n : TBasicType TUInt
IO (Ptr ())
{- |
Returns the /@n@/\'th element of /@queue@/.
/Since: 2.4/
-}
queuePeekNth ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> Word32
{- ^ /@n@/: the position of the element -}
-> m (Ptr ())
{- ^ __Returns:__ the data for the /@n@/\'th element of /@queue@/,
or 'Nothing' if /@n@/ is off the end of /@queue@/ -}
queuePeekNth queue n = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
result <- g_queue_peek_nth queue' n
touchManagedPtr queue
return result
#if ENABLE_OVERLOADING
data QueuePeekNthMethodInfo
instance (signature ~ (Word32 -> m (Ptr ())), MonadIO m) => O.MethodInfo QueuePeekNthMethodInfo Queue signature where
overloadedMethod _ = queuePeekNth
#endif
-- method Queue::peek_tail
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TPtr)
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_peek_tail" g_queue_peek_tail ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
IO (Ptr ())
{- |
Returns the last element of the queue.
-}
queuePeekTail ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> m (Ptr ())
{- ^ __Returns:__ the data of the last element in the queue, or 'Nothing'
if the queue is empty -}
queuePeekTail queue = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
result <- g_queue_peek_tail queue'
touchManagedPtr queue
return result
#if ENABLE_OVERLOADING
data QueuePeekTailMethodInfo
instance (signature ~ (m (Ptr ())), MonadIO m) => O.MethodInfo QueuePeekTailMethodInfo Queue signature where
overloadedMethod _ = queuePeekTail
#endif
-- method Queue::pop_head
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TPtr)
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_pop_head" g_queue_pop_head ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
IO (Ptr ())
{- |
Removes the first element of the queue and returns its data.
-}
queuePopHead ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> m (Ptr ())
{- ^ __Returns:__ the data of the first element in the queue, or 'Nothing'
if the queue is empty -}
queuePopHead queue = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
result <- g_queue_pop_head queue'
touchManagedPtr queue
return result
#if ENABLE_OVERLOADING
data QueuePopHeadMethodInfo
instance (signature ~ (m (Ptr ())), MonadIO m) => O.MethodInfo QueuePopHeadMethodInfo Queue signature where
overloadedMethod _ = queuePopHead
#endif
-- method Queue::pop_nth
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the position of the element", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TPtr)
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_pop_nth" g_queue_pop_nth ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
Word32 -> -- n : TBasicType TUInt
IO (Ptr ())
{- |
Removes the /@n@/\'th element of /@queue@/ and returns its data.
/Since: 2.4/
-}
queuePopNth ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> Word32
{- ^ /@n@/: the position of the element -}
-> m (Ptr ())
{- ^ __Returns:__ the element\'s data, or 'Nothing' if /@n@/ is off the end of /@queue@/ -}
queuePopNth queue n = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
result <- g_queue_pop_nth queue' n
touchManagedPtr queue
return result
#if ENABLE_OVERLOADING
data QueuePopNthMethodInfo
instance (signature ~ (Word32 -> m (Ptr ())), MonadIO m) => O.MethodInfo QueuePopNthMethodInfo Queue signature where
overloadedMethod _ = queuePopNth
#endif
-- method Queue::pop_tail
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TPtr)
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_pop_tail" g_queue_pop_tail ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
IO (Ptr ())
{- |
Removes the last element of the queue and returns its data.
-}
queuePopTail ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> m (Ptr ())
{- ^ __Returns:__ the data of the last element in the queue, or 'Nothing'
if the queue is empty -}
queuePopTail queue = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
result <- g_queue_pop_tail queue'
touchManagedPtr queue
return result
#if ENABLE_OVERLOADING
data QueuePopTailMethodInfo
instance (signature ~ (m (Ptr ())), MonadIO m) => O.MethodInfo QueuePopTailMethodInfo Queue signature where
overloadedMethod _ = queuePopTail
#endif
-- method Queue::push_head
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the data for the new element.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_push_head" g_queue_push_head ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
Ptr () -> -- data : TBasicType TPtr
IO ()
{- |
Adds a new element at the head of the queue.
-}
queuePushHead ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue'. -}
-> Ptr ()
{- ^ /@data@/: the data for the new element. -}
-> m ()
queuePushHead queue data_ = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
g_queue_push_head queue' data_
touchManagedPtr queue
return ()
#if ENABLE_OVERLOADING
data QueuePushHeadMethodInfo
instance (signature ~ (Ptr () -> m ()), MonadIO m) => O.MethodInfo QueuePushHeadMethodInfo Queue signature where
overloadedMethod _ = queuePushHead
#endif
-- method Queue::push_nth
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the data for the new element", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the position to insert the new element. If @n is negative or\n larger than the number of elements in the @queue, the element is\n added to the end of the queue.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_push_nth" g_queue_push_nth ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
Ptr () -> -- data : TBasicType TPtr
Int32 -> -- n : TBasicType TInt
IO ()
{- |
Inserts a new element into /@queue@/ at the given position.
/Since: 2.4/
-}
queuePushNth ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> Ptr ()
{- ^ /@data@/: the data for the new element -}
-> Int32
{- ^ /@n@/: the position to insert the new element. If /@n@/ is negative or
larger than the number of elements in the /@queue@/, the element is
added to the end of the queue. -}
-> m ()
queuePushNth queue data_ n = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
g_queue_push_nth queue' data_ n
touchManagedPtr queue
return ()
#if ENABLE_OVERLOADING
data QueuePushNthMethodInfo
instance (signature ~ (Ptr () -> Int32 -> m ()), MonadIO m) => O.MethodInfo QueuePushNthMethodInfo Queue signature where
overloadedMethod _ = queuePushNth
#endif
-- method Queue::push_tail
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the data for the new element", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_push_tail" g_queue_push_tail ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
Ptr () -> -- data : TBasicType TPtr
IO ()
{- |
Adds a new element at the tail of the queue.
-}
queuePushTail ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> Ptr ()
{- ^ /@data@/: the data for the new element -}
-> m ()
queuePushTail queue data_ = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
g_queue_push_tail queue' data_
touchManagedPtr queue
return ()
#if ENABLE_OVERLOADING
data QueuePushTailMethodInfo
instance (signature ~ (Ptr () -> m ()), MonadIO m) => O.MethodInfo QueuePushTailMethodInfo Queue signature where
overloadedMethod _ = queuePushTail
#endif
-- method Queue::remove
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the data to remove", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_remove" g_queue_remove ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
Ptr () -> -- data : TBasicType TPtr
IO CInt
{- |
Removes the first element in /@queue@/ that contains /@data@/.
/Since: 2.4/
-}
queueRemove ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> Ptr ()
{- ^ /@data@/: the data to remove -}
-> m Bool
{- ^ __Returns:__ 'True' if /@data@/ was found and removed from /@queue@/ -}
queueRemove queue data_ = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
result <- g_queue_remove queue' data_
let result' = (/= 0) result
touchManagedPtr queue
return result'
#if ENABLE_OVERLOADING
data QueueRemoveMethodInfo
instance (signature ~ (Ptr () -> m Bool), MonadIO m) => O.MethodInfo QueueRemoveMethodInfo Queue signature where
overloadedMethod _ = queueRemove
#endif
-- method Queue::remove_all
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the data to remove", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt)
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_remove_all" g_queue_remove_all ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
Ptr () -> -- data : TBasicType TPtr
IO Word32
{- |
Remove all elements whose data equals /@data@/ from /@queue@/.
/Since: 2.4/
-}
queueRemoveAll ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> Ptr ()
{- ^ /@data@/: the data to remove -}
-> m Word32
{- ^ __Returns:__ the number of elements removed from /@queue@/ -}
queueRemoveAll queue data_ = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
result <- g_queue_remove_all queue' data_
touchManagedPtr queue
return result
#if ENABLE_OVERLOADING
data QueueRemoveAllMethodInfo
instance (signature ~ (Ptr () -> m Word32), MonadIO m) => O.MethodInfo QueueRemoveAllMethodInfo Queue signature where
overloadedMethod _ = queueRemoveAll
#endif
-- method Queue::reverse
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "queue", argType = TInterface (Name {namespace = "GLib", name = "Queue"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GQueue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_queue_reverse" g_queue_reverse ::
Ptr Queue -> -- queue : TInterface (Name {namespace = "GLib", name = "Queue"})
IO ()
{- |
Reverses the order of the items in /@queue@/.
/Since: 2.4/
-}
queueReverse ::
(B.CallStack.HasCallStack, MonadIO m) =>
Queue
{- ^ /@queue@/: a 'GI.GLib.Structs.Queue.Queue' -}
-> m ()
queueReverse queue = liftIO $ do
queue' <- unsafeManagedPtrGetPtr queue
g_queue_reverse queue'
touchManagedPtr queue
return ()
#if ENABLE_OVERLOADING
data QueueReverseMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo QueueReverseMethodInfo Queue signature where
overloadedMethod _ = queueReverse
#endif
#if ENABLE_OVERLOADING
type family ResolveQueueMethod (t :: Symbol) (o :: *) :: * where
ResolveQueueMethod "clear" o = QueueClearMethodInfo
ResolveQueueMethod "clearFull" o = QueueClearFullMethodInfo
ResolveQueueMethod "free" o = QueueFreeMethodInfo
ResolveQueueMethod "freeFull" o = QueueFreeFullMethodInfo
ResolveQueueMethod "index" o = QueueIndexMethodInfo
ResolveQueueMethod "init" o = QueueInitMethodInfo
ResolveQueueMethod "isEmpty" o = QueueIsEmptyMethodInfo
ResolveQueueMethod "peekHead" o = QueuePeekHeadMethodInfo
ResolveQueueMethod "peekNth" o = QueuePeekNthMethodInfo
ResolveQueueMethod "peekTail" o = QueuePeekTailMethodInfo
ResolveQueueMethod "popHead" o = QueuePopHeadMethodInfo
ResolveQueueMethod "popNth" o = QueuePopNthMethodInfo
ResolveQueueMethod "popTail" o = QueuePopTailMethodInfo
ResolveQueueMethod "pushHead" o = QueuePushHeadMethodInfo
ResolveQueueMethod "pushNth" o = QueuePushNthMethodInfo
ResolveQueueMethod "pushTail" o = QueuePushTailMethodInfo
ResolveQueueMethod "remove" o = QueueRemoveMethodInfo
ResolveQueueMethod "removeAll" o = QueueRemoveAllMethodInfo
ResolveQueueMethod "reverse" o = QueueReverseMethodInfo
ResolveQueueMethod "getLength" o = QueueGetLengthMethodInfo
ResolveQueueMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveQueueMethod t Queue, O.MethodInfo info Queue p) => OL.IsLabel t (Queue -> 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