module GI.Gio.Objects.ThreadedSocketService
(
ThreadedSocketService(..) ,
ThreadedSocketServiceK ,
toThreadedSocketService ,
noThreadedSocketService ,
threadedSocketServiceNew ,
ThreadedSocketServiceMaxThreadsPropertyInfo,
constructThreadedSocketServiceMaxThreads,
getThreadedSocketServiceMaxThreads ,
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
type ThreadedSocketServiceRunCallback =
SocketConnection ->
GObject.Object ->
IO Bool
noThreadedSocketServiceRunCallback :: Maybe ThreadedSocketServiceRunCallback
noThreadedSocketServiceRunCallback = Nothing
type ThreadedSocketServiceRunCallbackC =
Ptr () ->
Ptr SocketConnection ->
Ptr GObject.Object ->
Ptr () ->
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
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 = ('[ '("active", SocketServiceActivePropertyInfo), '("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 = ('[ '("event", SocketListenerEventSignalInfo), '("incoming", SocketServiceIncomingSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("run", ThreadedSocketServiceRunSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "g_threaded_socket_service_new" g_threaded_socket_service_new ::
Int32 ->
IO (Ptr ThreadedSocketService)
threadedSocketServiceNew ::
(MonadIO m) =>
Int32 ->
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'