class Gio::UnixFDMessage

Overview

This #GSocketControlMessage contains a #GUnixFDList. It may be sent using g_socket_send_message() and received using g_socket_receive_message() over UNIX sockets (ie: sockets in the %G_SOCKET_FAMILY_UNIX family). The file descriptors are copied between processes by the kernel.

For an easier way to send and receive file descriptors over stream-oriented UNIX sockets, see g_unix_connection_send_fd() and g_unix_connection_receive_fd().

Note that <gio/gunixfdmessage.h> belongs to the UNIX-specific GIO interfaces, thus you have to use the gio-unix-2.0.pc pkg-config file when using it.

Defined in:

lib/gi-crystal/src/auto/gio-2.0/unix_fd_message.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class Gio::SocketControlMessage

==(other : self) ==, hash(hasher) hash, level : Int32 level, msg_type : Int32 msg_type, serialize(data : Pointer(Void)) : Nil serialize, size : UInt64 size

Constructor methods inherited from class Gio::SocketControlMessage

new new

Class methods inherited from class Gio::SocketControlMessage

deserialize(level : Int32, type : Int32, data : Bytes) : Gio::SocketControlMessage deserialize, 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 : self #

Creates a new #GUnixFDMessage containing an empty file descriptor list.


[View source]
def self.new(*, fd_list : Gio::UnixFDList | Nil = nil) #

[View source]
def self.new_with_fd_list(fd_list : Gio::UnixFDList) : self #

Creates a new #GUnixFDMessage containing list.


[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 append_fd(fd : Int32) : Bool #

Adds a file descriptor to message.

The file descriptor is duplicated using dup(). You keep your copy of the descriptor and the copy contained in message will be closed when message is finalized.

A possible cause of failure is exceeding the per-process or system-wide file descriptor limit.


[View source]
def fd_list : Gio::UnixFDList #

Gets the #GUnixFDList contained in message. This function does not return a reference to the caller, but the returned list is valid for the lifetime of message.


[View source]
def fd_list=(value : Gio::UnixFDList | Nil) : Gio::UnixFDList | Nil #

[View source]
def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def steal_fds : Enumerable(Int32) #

Returns the array of file descriptors that is contained in this object.

After this call, the descriptors are no longer contained in message. Further calls will return an empty list (unless more descriptors have been added).

The return result of this function must be freed with g_free(). The caller is also responsible for closing all of the file descriptors.

If length is non-nil then it is set to the number of file descriptors in the returned array. The returned array is also terminated with -1.

This function never returns nil. In case there are no file descriptors contained in message, an empty array is returned.


[View source]