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 = nil, listen_backlog : Int32 | Nil = nil, max_threads : Int32 | Nil = nil)
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
-
#==(other : self)
Returns
true
if this reference is the same as other. -
#hash(hasher)
See
Object#hash(hasher)
- #max_threads : Int32
- #max_threads=(value : Int32) : Int32
- #run_signal
Instance methods inherited from class Gio::SocketService
==(other : self)
==,
active=(value : Bool) : Bool
active=,
active? : Bool
active?,
hash(hasher)
hash,
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 = nil, listen_backlog : Int32 | Nil = nil) new
Class methods inherited from class Gio::SocketService
g_type : UInt64
g_type
Instance methods inherited from class Gio::SocketListener
==(other : self)
==,
accept(cancellable : Gio::Cancellable | Nil) : Gio::SocketConnection
accept,
accept_async(cancellable : Gio::Cancellable | Nil, &callback : Gio::AsyncReadyCallback) : Nil
accept_async,
accept_finish(result : Gio::AsyncResult) : Gio::SocketConnection
accept_finish,
accept_socket(cancellable : Gio::Cancellable | Nil) : Gio::Socket
accept_socket,
accept_socket_async(cancellable : Gio::Cancellable | Nil, &callback : Gio::AsyncReadyCallback) : 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 | Nil) : Bool
add_address,
add_any_inet_port(source_object : GObject::Object | Nil) : UInt16
add_any_inet_port,
add_inet_port(port : UInt16, source_object : GObject::Object | Nil) : Bool
add_inet_port,
add_socket(socket : Gio::Socket, source_object : GObject::Object | Nil) : Bool
add_socket,
backlog=(listen_backlog : Int32) : Nil
backlog=,
close : Nil
close,
event_signal
event_signal,
hash(hasher)
hash,
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 = nil) new
Class methods inherited from class Gio::SocketListener
g_type : UInt64
g_type
Instance methods inherited from class GObject::Object
==(other : self)
==,
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) | Nil
data,
finalize
finalize,
freeze_notify : Nil
freeze_notify,
getv(names : Enumerable(String), values : Enumerable(_)) : Nil
getv,
hash(hasher)
hash,
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) | Nil
qdata,
ref_count : UInt32
ref_count,
run_dispose : Nil
run_dispose,
set_data(key : String, data : Pointer(Void) | Nil) : Nil
set_data,
set_property(property_name : String, value : _) : Nil
set_property,
steal_data(key : String) : Pointer(Void) | Nil
steal_data,
steal_qdata(quark : UInt32) : Pointer(Void) | Nil
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,
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
cast?(obj : GObject::Object) : self | Nil
cast?,
compat_control(what : UInt64, data : Pointer(Void) | Nil) : 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
Macros inherited from class GObject::Object
previous_vfunc(*args)
previous_vfunc,
previous_vfunc!(*args)
previous_vfunc!,
signal(signature)
signal
Constructor Detail
Creates a new #GThreadedSocketService with no listeners. Listeners must be added with one of the #GSocketListener "add" methods.
Class Method Detail
Returns the type id (GType) registered in GLib type system.
Instance Method Detail
Returns true
if this reference is the same as other. Invokes same?
.