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

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 : Enumerable(UInt8)) : Gio::SocketControlMessage deserialize, 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

def self.new : self #

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


def self.new(*, fd_list : Gio::UnixFDList? = nil) #

def self.new_with_fd_list(fd_list : Gio::UnixFDList) : self #

Creates a new #GUnixFDMessage containing @list.


Class Method Detail

def self.g_type : UInt64 #

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


Instance Method Detail

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.


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.


def fd_list=(value : Gio::UnixFDList?) : Gio::UnixFDList? #

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.