Package org.gnome.gio
Class ThreadedSocketService
java.lang.Object
org.javagi.base.ProxyInstance
org.gnome.gobject.TypeInstance
org.gnome.gobject.GObject
org.gnome.gio.SocketListener
org.gnome.gio.SocketService
org.gnome.gio.ThreadedSocketService
- All Implemented Interfaces:
Proxy
A
GThreadedSocketService is a simple subclass of SocketService
that handles incoming connections by creating a worker thread and
dispatching the connection to it by emitting the
Gio.ThreadedSocketService::run signal in the new thread.
The signal handler may perform blocking I/O 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
Gio.ThreadedSocketService::run, or subclass and override the default
handler.
- Since:
- 2.22
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classInner class implementing a builder pattern to construct a GObject with properties.static interfaceFunctional interface declaration of theRunCallbackcallback.static classNested classes/interfaces inherited from class org.gnome.gio.SocketService
SocketService.IncomingCallback, SocketService.SocketServiceClassNested classes/interfaces inherited from class org.gnome.gio.SocketListener
SocketListener.EventCallback, SocketListener.SocketListenerClassNested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClass -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new ThreadedSocketService.ThreadedSocketService(int maxThreads) Creates a newGThreadedSocketServicewith no listeners.ThreadedSocketService(MemorySegment address) Create a ThreadedSocketService proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected ThreadedSocketServiceasParent()Returns this instance as if it were its parent type.static ThreadedSocketService.Builder<? extends ThreadedSocketService.Builder> builder()AThreadedSocketService.Builderobject constructs aThreadedSocketServicewith the specified properties.booleanemitRun(@Nullable SocketConnection connection, @Nullable GObject sourceObject) Emits the "run" signal.static MemoryLayoutThe memory layout of the native struct.static @Nullable TypegetType()Get the GType of the ThreadedSocketService classonRun(ThreadedSocketService.RunCallback handler) The ::run signal is emitted in a worker thread in response to an incoming connection.protected booleanrun(SocketConnection connection, GObject sourceObject) Methods inherited from class org.gnome.gio.SocketService
emitIncoming, incoming, isActive, onIncoming, start, stopMethods inherited from class org.gnome.gio.SocketListener
accept, acceptAsync, acceptFinish, acceptSocket, acceptSocketAsync, acceptSocketFinish, addAddress, addAnyInetPort, addInetPort, addSocket, changed, close, emitEvent, event, onEvent, setBacklogMethods inherited from class org.gnome.gobject.GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newv, notify, notify, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withPropertiesMethods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, cast, getPrivate, readGClass, writeGClassMethods inherited from class org.javagi.base.ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
ThreadedSocketService
Create a ThreadedSocketService proxy instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
ThreadedSocketService
public ThreadedSocketService(int maxThreads) Creates a newGThreadedSocketServicewith no listeners. Listeners must be added with one of theGSocketListener"add" methods.- Parameters:
maxThreads- the maximal number of threads to execute concurrently handling incoming clients, -1 means no limit- Since:
- 2.22
-
ThreadedSocketService
public ThreadedSocketService()Creates a new ThreadedSocketService.
-
-
Method Details
-
getType
Get the GType of the ThreadedSocketService class- Returns:
- the GType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuperkeyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName(). This will call the native function pointer of this virtual method in the typeclass of the parent type.- Overrides:
asParentin classSocketService
-
run
-
onRun
public SignalConnection<ThreadedSocketService.RunCallback> onRun(ThreadedSocketService.RunCallback handler) The ::run signal is emitted in a worker thread in response to an incoming connection. This thread is dedicated to handlingconnectionand may perform blocking IO. The signal handler need not return until the connection is closed.- Parameters:
handler- the signal handler- Returns:
- a signal handler ID to keep track of the signal connection
- See Also:
-
emitRun
Emits the "run" signal. SeeonRun(org.gnome.gio.ThreadedSocketService.RunCallback). -
builder
AThreadedSocketService.Builderobject constructs aThreadedSocketServicewith the specified properties. Use the variousset...()methods to set properties, and finish construction withThreadedSocketService.Builder.build().- Returns:
- the builder object
-