gi-gio-0.2.44.12: GI/Gio/Objects/ThreadedSocketService.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.ThreadedSocketService
(
-- * Exported types
ThreadedSocketService(..) ,
ThreadedSocketServiceK ,
toThreadedSocketService ,
noThreadedSocketService ,
-- * Methods
-- ** threadedSocketServiceNew
threadedSocketServiceNew ,
-- * Properties
-- ** MaxThreads
ThreadedSocketServiceMaxThreadsPropertyInfo,
constructThreadedSocketServiceMaxThreads,
getThreadedSocketServiceMaxThreads ,
-- * Signals
-- ** Run
ThreadedSocketServiceRunCallback ,
ThreadedSocketServiceRunCallbackC ,
ThreadedSocketServiceRunSignalInfo ,
afterThreadedSocketServiceRun ,
mkThreadedSocketServiceRunCallback ,
noThreadedSocketServiceRunCallback ,
onThreadedSocketServiceRun ,
threadedSocketServiceRunCallbackWrapper ,
threadedSocketServiceRunClosure ,
) 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.GObject as GObject
newtype ThreadedSocketService = ThreadedSocketService (ForeignPtr ThreadedSocketService)
foreign import ccall "g_threaded_socket_service_get_type"
c_g_threaded_socket_service_get_type :: IO GType
type instance ParentTypes ThreadedSocketService = ThreadedSocketServiceParentTypes
type ThreadedSocketServiceParentTypes = '[SocketService, SocketListener, GObject.Object]
instance GObject ThreadedSocketService where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_g_threaded_socket_service_get_type
class GObject o => ThreadedSocketServiceK o
instance (GObject o, IsDescendantOf ThreadedSocketService o) => ThreadedSocketServiceK o
toThreadedSocketService :: ThreadedSocketServiceK o => o -> IO ThreadedSocketService
toThreadedSocketService = unsafeCastTo ThreadedSocketService
noThreadedSocketService :: Maybe ThreadedSocketService
noThreadedSocketService = Nothing
-- signal ThreadedSocketService::run
type ThreadedSocketServiceRunCallback =
SocketConnection ->
GObject.Object ->
IO Bool
noThreadedSocketServiceRunCallback :: Maybe ThreadedSocketServiceRunCallback
noThreadedSocketServiceRunCallback = Nothing
type ThreadedSocketServiceRunCallbackC =
Ptr () -> -- object
Ptr SocketConnection ->
Ptr GObject.Object ->
Ptr () -> -- user_data
IO CInt
foreign import ccall "wrapper"
mkThreadedSocketServiceRunCallback :: ThreadedSocketServiceRunCallbackC -> IO (FunPtr ThreadedSocketServiceRunCallbackC)
threadedSocketServiceRunClosure :: ThreadedSocketServiceRunCallback -> IO Closure
threadedSocketServiceRunClosure cb = newCClosure =<< mkThreadedSocketServiceRunCallback wrapped
where wrapped = threadedSocketServiceRunCallbackWrapper cb
threadedSocketServiceRunCallbackWrapper ::
ThreadedSocketServiceRunCallback ->
Ptr () ->
Ptr SocketConnection ->
Ptr GObject.Object ->
Ptr () ->
IO CInt
threadedSocketServiceRunCallbackWrapper _cb _ connection source_object _ = do
connection' <- (newObject SocketConnection) connection
source_object' <- (newObject GObject.Object) source_object
result <- _cb connection' source_object'
let result' = (fromIntegral . fromEnum) result
return result'
onThreadedSocketServiceRun :: (GObject a, MonadIO m) => a -> ThreadedSocketServiceRunCallback -> m SignalHandlerId
onThreadedSocketServiceRun obj cb = liftIO $ connectThreadedSocketServiceRun obj cb SignalConnectBefore
afterThreadedSocketServiceRun :: (GObject a, MonadIO m) => a -> ThreadedSocketServiceRunCallback -> m SignalHandlerId
afterThreadedSocketServiceRun obj cb = connectThreadedSocketServiceRun obj cb SignalConnectAfter
connectThreadedSocketServiceRun :: (GObject a, MonadIO m) =>
a -> ThreadedSocketServiceRunCallback -> SignalConnectMode -> m SignalHandlerId
connectThreadedSocketServiceRun obj cb after = liftIO $ do
cb' <- mkThreadedSocketServiceRunCallback (threadedSocketServiceRunCallbackWrapper cb)
connectSignalFunPtr obj "run" cb' after
-- VVV Prop "max-threads"
-- Type: TBasicType TInt32
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getThreadedSocketServiceMaxThreads :: (MonadIO m, ThreadedSocketServiceK o) => o -> m Int32
getThreadedSocketServiceMaxThreads obj = liftIO $ getObjectPropertyCInt obj "max-threads"
constructThreadedSocketServiceMaxThreads :: Int32 -> IO ([Char], GValue)
constructThreadedSocketServiceMaxThreads val = constructObjectPropertyCInt "max-threads" val
data ThreadedSocketServiceMaxThreadsPropertyInfo
instance AttrInfo ThreadedSocketServiceMaxThreadsPropertyInfo where
type AttrAllowedOps ThreadedSocketServiceMaxThreadsPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ThreadedSocketServiceMaxThreadsPropertyInfo = (~) Int32
type AttrBaseTypeConstraint ThreadedSocketServiceMaxThreadsPropertyInfo = ThreadedSocketServiceK
type AttrGetType ThreadedSocketServiceMaxThreadsPropertyInfo = Int32
type AttrLabel ThreadedSocketServiceMaxThreadsPropertyInfo = "ThreadedSocketService::max-threads"
attrGet _ = getThreadedSocketServiceMaxThreads
attrSet _ = undefined
attrConstruct _ = constructThreadedSocketServiceMaxThreads
type instance AttributeList ThreadedSocketService = ThreadedSocketServiceAttributeList
type ThreadedSocketServiceAttributeList = ('[ '("listen-backlog", SocketListenerListenBacklogPropertyInfo), '("max-threads", ThreadedSocketServiceMaxThreadsPropertyInfo)] :: [(Symbol, *)])
data ThreadedSocketServiceRunSignalInfo
instance SignalInfo ThreadedSocketServiceRunSignalInfo where
type HaskellCallbackType ThreadedSocketServiceRunSignalInfo = ThreadedSocketServiceRunCallback
connectSignal _ = connectThreadedSocketServiceRun
type instance SignalList ThreadedSocketService = ThreadedSocketServiceSignalList
type ThreadedSocketServiceSignalList = ('[ '("incoming", SocketServiceIncomingSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("run", ThreadedSocketServiceRunSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
-- method ThreadedSocketService::new
-- method type : Constructor
-- Args : [Arg {argName = "max_threads", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "max_threads", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gio" "ThreadedSocketService"
-- throws : False
-- Skip return : False
foreign import ccall "g_threaded_socket_service_new" g_threaded_socket_service_new ::
Int32 -> -- max_threads : TBasicType TInt32
IO (Ptr ThreadedSocketService)
threadedSocketServiceNew ::
(MonadIO m) =>
Int32 -> -- max_threads
m ThreadedSocketService
threadedSocketServiceNew max_threads = liftIO $ do
result <- g_threaded_socket_service_new max_threads
checkUnexpectedReturnNULL "g_threaded_socket_service_new" result
result' <- (wrapObject ThreadedSocketService) result
return result'