{- | 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 type family ResolveThreadedSocketServiceMethod (t :: Symbol) (o :: *) :: * where ResolveThreadedSocketServiceMethod "accept" o = SocketListenerAcceptMethodInfo ResolveThreadedSocketServiceMethod "acceptAsync" o = SocketListenerAcceptAsyncMethodInfo ResolveThreadedSocketServiceMethod "acceptFinish" o = SocketListenerAcceptFinishMethodInfo ResolveThreadedSocketServiceMethod "acceptSocket" o = SocketListenerAcceptSocketMethodInfo ResolveThreadedSocketServiceMethod "acceptSocketAsync" o = SocketListenerAcceptSocketAsyncMethodInfo ResolveThreadedSocketServiceMethod "acceptSocketFinish" o = SocketListenerAcceptSocketFinishMethodInfo ResolveThreadedSocketServiceMethod "addAddress" o = SocketListenerAddAddressMethodInfo ResolveThreadedSocketServiceMethod "addAnyInetPort" o = SocketListenerAddAnyInetPortMethodInfo ResolveThreadedSocketServiceMethod "addInetPort" o = SocketListenerAddInetPortMethodInfo ResolveThreadedSocketServiceMethod "addSocket" o = SocketListenerAddSocketMethodInfo ResolveThreadedSocketServiceMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo ResolveThreadedSocketServiceMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo ResolveThreadedSocketServiceMethod "close" o = SocketListenerCloseMethodInfo ResolveThreadedSocketServiceMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo ResolveThreadedSocketServiceMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo ResolveThreadedSocketServiceMethod "isActive" o = SocketServiceIsActiveMethodInfo ResolveThreadedSocketServiceMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo ResolveThreadedSocketServiceMethod "notify" o = GObject.ObjectNotifyMethodInfo ResolveThreadedSocketServiceMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo ResolveThreadedSocketServiceMethod "ref" o = GObject.ObjectRefMethodInfo ResolveThreadedSocketServiceMethod "refSink" o = GObject.ObjectRefSinkMethodInfo ResolveThreadedSocketServiceMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo ResolveThreadedSocketServiceMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo ResolveThreadedSocketServiceMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo ResolveThreadedSocketServiceMethod "start" o = SocketServiceStartMethodInfo ResolveThreadedSocketServiceMethod "stealData" o = GObject.ObjectStealDataMethodInfo ResolveThreadedSocketServiceMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo ResolveThreadedSocketServiceMethod "stop" o = SocketServiceStopMethodInfo ResolveThreadedSocketServiceMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo ResolveThreadedSocketServiceMethod "unref" o = GObject.ObjectUnrefMethodInfo ResolveThreadedSocketServiceMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo ResolveThreadedSocketServiceMethod "getData" o = GObject.ObjectGetDataMethodInfo ResolveThreadedSocketServiceMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo ResolveThreadedSocketServiceMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo ResolveThreadedSocketServiceMethod "setBacklog" o = SocketListenerSetBacklogMethodInfo ResolveThreadedSocketServiceMethod "setData" o = GObject.ObjectSetDataMethodInfo ResolveThreadedSocketServiceMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo ResolveThreadedSocketServiceMethod l o = MethodResolutionFailed l o instance (info ~ ResolveThreadedSocketServiceMethod t ThreadedSocketService, MethodInfo info ThreadedSocketService p) => IsLabelProxy t (ThreadedSocketService -> p) where fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info) #if MIN_VERSION_base(4,9,0) instance (info ~ ResolveThreadedSocketServiceMethod t ThreadedSocketService, MethodInfo info ThreadedSocketService p) => IsLabel t (ThreadedSocketService -> p) where fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info) #endif -- 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 sourceObject _ = do connection' <- (newObject SocketConnection) connection sourceObject' <- (newObject GObject.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 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 = "max-threads" attrGet _ = getThreadedSocketServiceMaxThreads attrSet _ = undefined attrConstruct _ = constructThreadedSocketServiceMaxThreads type instance AttributeList ThreadedSocketService = ThreadedSocketServiceAttributeList type ThreadedSocketServiceAttributeList = ('[ '("active", SocketServiceActivePropertyInfo), '("listenBacklog", SocketListenerListenBacklogPropertyInfo), '("maxThreads", 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)] :: [(Symbol, *)]) -- method ThreadedSocketService::new -- method type : Constructor -- Args : [Arg {argCName = "max_threads", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- 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 -- maxThreads -> m ThreadedSocketService -- result threadedSocketServiceNew maxThreads = liftIO $ do result <- g_threaded_socket_service_new maxThreads checkUnexpectedReturnNULL "g_threaded_socket_service_new" result result' <- (wrapObject ThreadedSocketService) result return result'