| Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
|---|---|
| License | LGPL-2.1 |
| Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
| Safe Haskell | None |
| Language | Haskell2010 |
GI.Gio.Objects.ThreadedSocketService
Description
A ThreadedSocketService is a simple subclass of SocketService
that handles incoming connections by creating a worker thread and
dispatching the connection to it by emitting the
ThreadedSocketService::run signal in the new thread.
The signal handler may perform blocking IO and need not return until the connection is closed.
The service is implemented using a thread pool, so there is a
limited amount of threads available to serve incoming requests.
The service automatically stops the SocketService from accepting
new connections when all threads are busy.
As with SocketService, you may connect to ThreadedSocketService::run,
or subclass and override the default handler.
- newtype ThreadedSocketService = ThreadedSocketService (ManagedPtr ThreadedSocketService)
- class GObject o => IsThreadedSocketService o
- toThreadedSocketService :: (MonadIO m, IsThreadedSocketService o) => o -> m ThreadedSocketService
- noThreadedSocketService :: Maybe ThreadedSocketService
- threadedSocketServiceNew :: (HasCallStack, MonadIO m) => Int32 -> m ThreadedSocketService
- constructThreadedSocketServiceMaxThreads :: IsThreadedSocketService o => Int32 -> IO (GValueConstruct o)
- getThreadedSocketServiceMaxThreads :: (MonadIO m, IsThreadedSocketService o) => o -> m Int32
- type C_ThreadedSocketServiceRunCallback = Ptr () -> Ptr SocketConnection -> Ptr Object -> Ptr () -> IO CInt
- type ThreadedSocketServiceRunCallback = SocketConnection -> Object -> IO Bool
- afterThreadedSocketServiceRun :: (IsThreadedSocketService a, MonadIO m) => a -> ThreadedSocketServiceRunCallback -> m SignalHandlerId
- genClosure_ThreadedSocketServiceRun :: ThreadedSocketServiceRunCallback -> IO Closure
- mk_ThreadedSocketServiceRunCallback :: C_ThreadedSocketServiceRunCallback -> IO (FunPtr C_ThreadedSocketServiceRunCallback)
- noThreadedSocketServiceRunCallback :: Maybe ThreadedSocketServiceRunCallback
- onThreadedSocketServiceRun :: (IsThreadedSocketService a, MonadIO m) => a -> ThreadedSocketServiceRunCallback -> m SignalHandlerId
- wrap_ThreadedSocketServiceRunCallback :: ThreadedSocketServiceRunCallback -> Ptr () -> Ptr SocketConnection -> Ptr Object -> Ptr () -> IO CInt
Exported types
newtype ThreadedSocketService Source #
Constructors
| ThreadedSocketService (ManagedPtr ThreadedSocketService) |
class GObject o => IsThreadedSocketService o Source #
toThreadedSocketService :: (MonadIO m, IsThreadedSocketService o) => o -> m ThreadedSocketService Source #
Methods
new
threadedSocketServiceNew Source #
Arguments
| :: (HasCallStack, MonadIO m) | |
| => Int32 |
|
| -> m ThreadedSocketService | Returns: a new |
Creates a new ThreadedSocketService with no listeners. Listeners
must be added with one of the SocketListener "add" methods.
Since: 2.22
Properties
maxThreads
constructThreadedSocketServiceMaxThreads :: IsThreadedSocketService o => Int32 -> IO (GValueConstruct o) Source #
getThreadedSocketServiceMaxThreads :: (MonadIO m, IsThreadedSocketService o) => o -> m Int32 Source #
Signals
run
type C_ThreadedSocketServiceRunCallback = Ptr () -> Ptr SocketConnection -> Ptr Object -> Ptr () -> IO CInt Source #
type ThreadedSocketServiceRunCallback = SocketConnection -> Object -> IO Bool Source #
afterThreadedSocketServiceRun :: (IsThreadedSocketService a, MonadIO m) => a -> ThreadedSocketServiceRunCallback -> m SignalHandlerId Source #
mk_ThreadedSocketServiceRunCallback :: C_ThreadedSocketServiceRunCallback -> IO (FunPtr C_ThreadedSocketServiceRunCallback) Source #
onThreadedSocketServiceRun :: (IsThreadedSocketService a, MonadIO m) => a -> ThreadedSocketServiceRunCallback -> m SignalHandlerId Source #
wrap_ThreadedSocketServiceRunCallback :: ThreadedSocketServiceRunCallback -> Ptr () -> Ptr SocketConnection -> Ptr Object -> Ptr () -> IO CInt Source #