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.cr

Constructors

Class Method Summary

Instance Method Summary

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 : self
new(*, 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, user_data : Pointer(Void) | Nil) : 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, user_data : Pointer(Void) | Nil) : 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 : self
new(*, 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

Constructor Detail

def self.new(max_threads : Int32) : self #

Creates a new #GThreadedSocketService with no listeners. Listeners must be added with one of the #GSocketListener "add" methods.


[View source]
def self.new #

Initialize a new ThreadedSocketService.


[View source]
def self.new(*, active : Bool | Nil = nil, listen_backlog : Int32 | Nil = nil, max_threads : Int32 | Nil = nil) #

[View source]

Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


[View source]

Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.


def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def max_threads : Int32 #

[View source]
def max_threads=(value : Int32) : Int32 #

[View source]
def run_signal #

[View source]