UnixFDMessage

This gio.SocketControlMessage contains a gio.UnixFDList It may be sent using Socket.sendMessage and received using Socket.receiveMessage 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 UnixConnection.sendFd and UnixConnection.receiveFd.

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.

Constructors

this
this(GUnixFDMessage* gUnixFDMessage, bool ownedRef)

Sets our main struct and passes it to the parent class.

this
this()

Creates a new gio.UnixFDMessage containing an empty file descriptor list.

this
this(UnixFDList fdList)

Creates a new gio.UnixFDMessage containing list.

Members

Functions

appendFd
bool appendFd(int fd)

Adds a file descriptor to message.

getFdList
UnixFDList getFdList()

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

getStruct
void* getStruct()

the main Gtk struct as a void*

getUnixFDMessageStruct
GUnixFDMessage* getUnixFDMessageStruct(bool transferOwnership)

Get the main Gtk struct

stealFds
int[] stealFds()

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

Static functions

getType
GType getType()

Variables

gUnixFDMessage
GUnixFDMessage* gUnixFDMessage;

the main Gtk struct

Inherited Members

From SocketControlMessage

gSocketControlMessage
GSocketControlMessage* gSocketControlMessage;

the main Gtk struct

getSocketControlMessageStruct
GSocketControlMessage* getSocketControlMessageStruct(bool transferOwnership)

Get the main Gtk struct

getStruct
void* getStruct()

the main Gtk struct as a void*

getType
GType getType()
deserialize
SocketControlMessage deserialize(int level, int type, ubyte[] data)

Tries to deserialize a socket control message of a given level and type. This will ask all known (to GType) subclasses of gio.SocketControlMessage if they can understand this kind of message and if so deserialize it into a gio.SocketControlMessage

getLevel
int getLevel()

Returns the "level" (i.e. the originating protocol) of the control message. This is often SOL_SOCKET.

getMsgType
int getMsgType()

Returns the protocol specific type of the control message. For instance, for UNIX fd passing this would be SCM_RIGHTS.

getSize
size_t getSize()

Returns the space required for the control message, not including headers or alignment.

serialize
void serialize(void* data)

Converts the data in the message to bytes placed in the message.