module GI.Gio.Objects.ThreadedSocketService
(
ThreadedSocketService(..) ,
IsThreadedSocketService ,
toThreadedSocketService ,
noThreadedSocketService ,
threadedSocketServiceNew ,
ThreadedSocketServiceMaxThreadsPropertyInfo,
constructThreadedSocketServiceMaxThreads,
getThreadedSocketServiceMaxThreads ,
threadedSocketServiceMaxThreads ,
C_ThreadedSocketServiceRunCallback ,
ThreadedSocketServiceRunCallback ,
ThreadedSocketServiceRunSignalInfo ,
afterThreadedSocketServiceRun ,
genClosure_ThreadedSocketServiceRun ,
mk_ThreadedSocketServiceRunCallback ,
noThreadedSocketServiceRunCallback ,
onThreadedSocketServiceRun ,
wrap_ThreadedSocketServiceRunCallback ,
) 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.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
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 GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gio.Objects.SocketConnection as Gio.SocketConnection
import qualified GI.Gio.Objects.SocketListener as Gio.SocketListener
import qualified GI.Gio.Objects.SocketService as Gio.SocketService
newtype ThreadedSocketService = ThreadedSocketService (ManagedPtr ThreadedSocketService)
foreign import ccall "g_threaded_socket_service_get_type"
c_g_threaded_socket_service_get_type :: IO GType
instance GObject ThreadedSocketService where
gobjectType _ = c_g_threaded_socket_service_get_type
class GObject o => IsThreadedSocketService o
#if MIN_VERSION_base(4,9,0)
instance (GObject a, O.UnknownAncestorError ThreadedSocketService a) =>
IsThreadedSocketService a
#endif
instance IsThreadedSocketService ThreadedSocketService
instance Gio.SocketService.IsSocketService ThreadedSocketService
instance Gio.SocketListener.IsSocketListener ThreadedSocketService
instance GObject.Object.IsObject ThreadedSocketService
toThreadedSocketService :: IsThreadedSocketService o => o -> IO ThreadedSocketService
toThreadedSocketService = unsafeCastTo ThreadedSocketService
noThreadedSocketService :: Maybe ThreadedSocketService
noThreadedSocketService = Nothing
type family ResolveThreadedSocketServiceMethod (t :: Symbol) (o :: *) :: * where
ResolveThreadedSocketServiceMethod "accept" o = Gio.SocketListener.SocketListenerAcceptMethodInfo
ResolveThreadedSocketServiceMethod "acceptAsync" o = Gio.SocketListener.SocketListenerAcceptAsyncMethodInfo
ResolveThreadedSocketServiceMethod "acceptFinish" o = Gio.SocketListener.SocketListenerAcceptFinishMethodInfo
ResolveThreadedSocketServiceMethod "acceptSocket" o = Gio.SocketListener.SocketListenerAcceptSocketMethodInfo
ResolveThreadedSocketServiceMethod "acceptSocketAsync" o = Gio.SocketListener.SocketListenerAcceptSocketAsyncMethodInfo
ResolveThreadedSocketServiceMethod "acceptSocketFinish" o = Gio.SocketListener.SocketListenerAcceptSocketFinishMethodInfo
ResolveThreadedSocketServiceMethod "addAddress" o = Gio.SocketListener.SocketListenerAddAddressMethodInfo
ResolveThreadedSocketServiceMethod "addAnyInetPort" o = Gio.SocketListener.SocketListenerAddAnyInetPortMethodInfo
ResolveThreadedSocketServiceMethod "addInetPort" o = Gio.SocketListener.SocketListenerAddInetPortMethodInfo
ResolveThreadedSocketServiceMethod "addSocket" o = Gio.SocketListener.SocketListenerAddSocketMethodInfo
ResolveThreadedSocketServiceMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveThreadedSocketServiceMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveThreadedSocketServiceMethod "close" o = Gio.SocketListener.SocketListenerCloseMethodInfo
ResolveThreadedSocketServiceMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveThreadedSocketServiceMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveThreadedSocketServiceMethod "isActive" o = Gio.SocketService.SocketServiceIsActiveMethodInfo
ResolveThreadedSocketServiceMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveThreadedSocketServiceMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveThreadedSocketServiceMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveThreadedSocketServiceMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveThreadedSocketServiceMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveThreadedSocketServiceMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
ResolveThreadedSocketServiceMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
ResolveThreadedSocketServiceMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveThreadedSocketServiceMethod "start" o = Gio.SocketService.SocketServiceStartMethodInfo
ResolveThreadedSocketServiceMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveThreadedSocketServiceMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveThreadedSocketServiceMethod "stop" o = Gio.SocketService.SocketServiceStopMethodInfo
ResolveThreadedSocketServiceMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveThreadedSocketServiceMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveThreadedSocketServiceMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveThreadedSocketServiceMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveThreadedSocketServiceMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveThreadedSocketServiceMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveThreadedSocketServiceMethod "setBacklog" o = Gio.SocketListener.SocketListenerSetBacklogMethodInfo
ResolveThreadedSocketServiceMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveThreadedSocketServiceMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveThreadedSocketServiceMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveThreadedSocketServiceMethod t ThreadedSocketService, O.MethodInfo info ThreadedSocketService p) => O.IsLabelProxy t (ThreadedSocketService -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveThreadedSocketServiceMethod t ThreadedSocketService, O.MethodInfo info ThreadedSocketService p) => O.IsLabel t (ThreadedSocketService -> p) where
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
type ThreadedSocketServiceRunCallback =
Gio.SocketConnection.SocketConnection ->
GObject.Object.Object ->
IO Bool
noThreadedSocketServiceRunCallback :: Maybe ThreadedSocketServiceRunCallback
noThreadedSocketServiceRunCallback = Nothing
type C_ThreadedSocketServiceRunCallback =
Ptr () ->
Ptr Gio.SocketConnection.SocketConnection ->
Ptr GObject.Object.Object ->
Ptr () ->
IO CInt
foreign import ccall "wrapper"
mk_ThreadedSocketServiceRunCallback :: C_ThreadedSocketServiceRunCallback -> IO (FunPtr C_ThreadedSocketServiceRunCallback)
genClosure_ThreadedSocketServiceRun :: ThreadedSocketServiceRunCallback -> IO Closure
genClosure_ThreadedSocketServiceRun cb = do
let cb' = wrap_ThreadedSocketServiceRunCallback cb
mk_ThreadedSocketServiceRunCallback cb' >>= newCClosure
wrap_ThreadedSocketServiceRunCallback ::
ThreadedSocketServiceRunCallback ->
Ptr () ->
Ptr Gio.SocketConnection.SocketConnection ->
Ptr GObject.Object.Object ->
Ptr () ->
IO CInt
wrap_ThreadedSocketServiceRunCallback _cb _ connection sourceObject _ = do
connection' <- (newObject Gio.SocketConnection.SocketConnection) connection
sourceObject' <- (newObject GObject.Object.Object) sourceObject
result <- _cb connection' sourceObject'
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
let cb' = wrap_ThreadedSocketServiceRunCallback cb
cb'' <- mk_ThreadedSocketServiceRunCallback cb'
connectSignalFunPtr obj "run" cb'' after
getThreadedSocketServiceMaxThreads :: (MonadIO m, IsThreadedSocketService o) => o -> m Int32
getThreadedSocketServiceMaxThreads obj = liftIO $ getObjectPropertyInt32 obj "max-threads"
constructThreadedSocketServiceMaxThreads :: (IsThreadedSocketService o) => Int32 -> IO (GValueConstruct o)
constructThreadedSocketServiceMaxThreads val = constructObjectPropertyInt32 "max-threads" val
data ThreadedSocketServiceMaxThreadsPropertyInfo
instance AttrInfo ThreadedSocketServiceMaxThreadsPropertyInfo where
type AttrAllowedOps ThreadedSocketServiceMaxThreadsPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ThreadedSocketServiceMaxThreadsPropertyInfo = (~) Int32
type AttrBaseTypeConstraint ThreadedSocketServiceMaxThreadsPropertyInfo = IsThreadedSocketService
type AttrGetType ThreadedSocketServiceMaxThreadsPropertyInfo = Int32
type AttrLabel ThreadedSocketServiceMaxThreadsPropertyInfo = "max-threads"
type AttrOrigin ThreadedSocketServiceMaxThreadsPropertyInfo = ThreadedSocketService
attrGet _ = getThreadedSocketServiceMaxThreads
attrSet _ = undefined
attrConstruct _ = constructThreadedSocketServiceMaxThreads
attrClear _ = undefined
instance O.HasAttributeList ThreadedSocketService
type instance O.AttributeList ThreadedSocketService = ThreadedSocketServiceAttributeList
type ThreadedSocketServiceAttributeList = ('[ '("active", Gio.SocketService.SocketServiceActivePropertyInfo), '("listenBacklog", Gio.SocketListener.SocketListenerListenBacklogPropertyInfo), '("maxThreads", ThreadedSocketServiceMaxThreadsPropertyInfo)] :: [(Symbol, *)])
threadedSocketServiceMaxThreads :: AttrLabelProxy "maxThreads"
threadedSocketServiceMaxThreads = AttrLabelProxy
data ThreadedSocketServiceRunSignalInfo
instance SignalInfo ThreadedSocketServiceRunSignalInfo where
type HaskellCallbackType ThreadedSocketServiceRunSignalInfo = ThreadedSocketServiceRunCallback
connectSignal _ = connectThreadedSocketServiceRun
type instance O.SignalList ThreadedSocketService = ThreadedSocketServiceSignalList
type ThreadedSocketServiceSignalList = ('[ '("event", Gio.SocketListener.SocketListenerEventSignalInfo), '("incoming", Gio.SocketService.SocketServiceIncomingSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("run", ThreadedSocketServiceRunSignalInfo)] :: [(Symbol, *)])
foreign import ccall "g_threaded_socket_service_new" g_threaded_socket_service_new ::
Int32 ->
IO (Ptr ThreadedSocketService)
threadedSocketServiceNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Int32
-> m ThreadedSocketService
threadedSocketServiceNew maxThreads = liftIO $ do
result <- g_threaded_socket_service_new maxThreads
checkUnexpectedReturnNULL "threadedSocketServiceNew" result
result' <- (wrapObject ThreadedSocketService) result
return result'