packages feed

qtah-qt5-0.8.0: src/Graphics/UI/Qtah/Core/QThread.hs

{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
---------- GENERATED FILE, EDITS WILL BE LOST ----------

{-# LANGUAGE NoMonomorphismRestriction #-}

module Graphics.UI.Qtah.Core.QThread (
  QThreadValue (..),
  QThreadConstPtr (..),
  QThreadPtr (..),
  QThreadConst,
  QThread,
  castConst,
  cast,
  downCastConst,
  downCast,
  new,
  newWithParent,
  currentThread,
  exit,
  exitWithCode,
  idealThreadCount,
  isFinished,
  isInterruptionRequested,
  isRunning,
  loopLevel,
  msleep,
  priority,
  quit,
  requestInterruption,
  setPriority,
  setStackSize,
  sleep,
  stackSize,
  start,
  startWithPriority,
  terminate,
  usleep,
  wait,
  waitWithMillis,
  yieldCurrentThread,
  finishedSignal,
  startedSignal,
  QThreadPriority (..),
  ) where

import qualified Foreign.Hoppy.Runtime as QtahFHR
import Graphics.UI.Qtah.Generated.Core.QThread
import Graphics.UI.Qtah.Internal.Listener
import qualified Graphics.UI.Qtah.Signal as QtahSignal
import Prelude (($), (>>))
import qualified Prelude as HoppyP
import qualified Prelude as QtahP


castConst = toQThreadConst
cast = toQThread
downCastConst = downToQThreadConst
downCast = downToQThread

finishedSignal :: (QThreadPtr object) => QtahSignal.Signal object (HoppyP.IO ())
finishedSignal = QtahSignal.Signal
  { QtahSignal.internalConnectSignal = \object' fn' -> do
    listener' <- listener_new object' "2finished()" fn'
    valid' <- listener_isValid listener'
    if valid'
      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
  , QtahSignal.internalName = "QThread::finished (Listener)"
  }

startedSignal :: (QThreadPtr object) => QtahSignal.Signal object (HoppyP.IO ())
startedSignal = QtahSignal.Signal
  { QtahSignal.internalConnectSignal = \object' fn' -> do
    listener' <- listener_new object' "2started()" fn'
    valid' <- listener_isValid listener'
    if valid'
      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
  , QtahSignal.internalName = "QThread::started (Listener)"
  }