class Gio::ThreadedSocketService
Overview
A #GThreadedSocketService is a simple subclass of #GSocketService that handles incoming connections by creating a worker thread and dispatching the connection to it by emitting the #GThreadedSocketService::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 #GSocketService from accepting new connections when all threads are busy.
As with #GSocketService, you may connect to #GThreadedSocketService::run, or subclass and override the default handler.
Defined in:
lib/gi-crystal/src/auto/gio-2.0/threaded_socket_service.crConstructors
-
.new(max_threads : Int32) : self
Creates a new #GThreadedSocketService with no listeners.
-
.new
Initialize a new
ThreadedSocketService
. - .new(*, active : Bool? = nil, listen_backlog : Int32? = nil, max_threads : Int32? = nil)
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
Instance methods inherited from class Gio::SocketService
active=(value : Bool) : Bool
active=,
active? : Bool
active?,
incoming_signal
incoming_signal,
is_active : Bool
is_active,
start : Nil
start,
stop : Nil
stop
Constructor methods inherited from class Gio::SocketService
new : selfnew(*, active : Bool? = nil, listen_backlog : Int32? = nil) new
Class methods inherited from class Gio::SocketService
g_type : UInt64
g_type
Instance methods inherited from class Gio::SocketListener
accept(cancellable : Gio::Cancellable?) : Gio::SocketConnection
accept,
accept_async(cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil
accept_async,
accept_finish(result : Gio::AsyncResult) : Gio::SocketConnection
accept_finish,
accept_socket(cancellable : Gio::Cancellable?) : Gio::Socket
accept_socket,
accept_socket_async(cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil
accept_socket_async,
accept_socket_finish(result : Gio::AsyncResult) : Gio::Socket
accept_socket_finish,
add_address(address : Gio::SocketAddress, type : Gio::SocketType, protocol : Gio::SocketProtocol, source_object : GObject::Object?) : Bool
add_address,
add_any_inet_port(source_object : GObject::Object?) : UInt16
add_any_inet_port,
add_inet_port(port : UInt16, source_object : GObject::Object?) : Bool
add_inet_port,
add_socket(socket : Gio::Socket, source_object : GObject::Object?) : Bool
add_socket,
backlog=(listen_backlog : Int32) : Nil
backlog=,
close : Nil
close,
event_signal
event_signal,
listen_backlog : Int32
listen_backlog,
listen_backlog=(value : Int32) : Int32
listen_backlog=
Constructor methods inherited from class Gio::SocketListener
new : selfnew(*, listen_backlog : Int32? = nil) new
Class methods inherited from class Gio::SocketListener
g_type : UInt64
g_type
Instance methods inherited from class GObject::Object
bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding
bind_property,
bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding
bind_property_full,
data(key : String) : Pointer(Void)?
data,
finalize
finalize,
freeze_notify : Nil
freeze_notify,
getv(names : Enumerable(String), values : Enumerable(_)) : Nil
getv,
notify(property_name : String) : Nil
notify,
notify_by_pspec(pspec : GObject::ParamSpec) : Nil
notify_by_pspec,
notify_signal
notify_signal,
property(property_name : String, value : _) : Nil
property,
qdata(quark : UInt32) : Pointer(Void)?
qdata,
ref_count : UInt32
ref_count,
run_dispose : Nil
run_dispose,
set_data(key : String, data : Pointer(Void)?) : Nil
set_data,
set_property(property_name : String, value : _) : Nil
set_property,
steal_data(key : String) : Pointer(Void)?
steal_data,
steal_qdata(quark : UInt32) : Pointer(Void)?
steal_qdata,
thaw_notify : Nil
thaw_notify,
to_unsafe : Pointer(Void)
to_unsafe,
watch_closure(closure : GObject::Closure) : Nil
watch_closure
Constructor methods inherited from class GObject::Object
cast(obj : GObject::Object) : self
cast,
cast?(obj : GObject::Object) : self?
cast?,
new(pointer : Pointer(Void), transfer : GICrystal::Transfer)new new, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv
Class methods inherited from class GObject::Object
compat_control(what : UInt64, data : Pointer(Void)?) : UInt64
compat_control,
g_type : UInt64
g_type,
interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec
interface_find_property,
interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec)
interface_list_properties
Constructor Detail
Creates a new #GThreadedSocketService with no listeners. Listeners must be added with one of the #GSocketListener "add" methods.