class Gio::UnixFDMessage
- Gio::UnixFDMessage
- Gio::SocketControlMessage
- GObject::Object
- Reference
- Object
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.crConstructors
-
.new : self
Creates a new #GUnixFDMessage containing an empty file descriptor list.
- .new(*, fd_list : Gio::UnixFDList? = nil)
-
.new_with_fd_list(fd_list : Gio::UnixFDList) : self
Creates a new #GUnixFDMessage containing @list.
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
-
#append_fd(fd : Int32) : Bool
Adds a file descriptor to @message.
-
#fd_list : Gio::UnixFDList
Gets the #GUnixFDList contained in @message.
- #fd_list=(value : Gio::UnixFDList?) : Gio::UnixFDList?
-
#steal_fds : Enumerable(Int32)
Returns the array of file descriptors that is contained in this object.
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
Creates a new #GUnixFDMessage containing @list.
Class Method Detail
Instance Method Detail
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.
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.
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.