Struct
GioInputMessage
since: 2.48
Description [src]
struct GInputMessage {
GSocketAddress** address;
GInputVector vectors[];
guint num_vectors;
gsize bytes_received;
gint flags;
GSocketControlMessage** control_messages[];
guint* num_control_messages;
}
Structure used for scatter/gather data input when receiving multiple
messages or packets in one go. You generally pass in an array of empty
GInputVectors and the operation will use all the buffers as if they
were one buffer, and will set bytes_received to the total number of bytes
received across all GInputVectors.
This structure closely mirrors struct mmsghdr and struct msghdr from
the POSIX sockets API (see man 2 recvmmsg).
If address is non-NULL then it is set to the source address the message
was received from, and the caller must free it afterwards.
If control_messages is non-NULL then it is set to an array of control
messages received with the message (if any), and the caller must free it
afterwards. num_control_messages is set to the number of elements in
this array, which may be zero.
Flags relevant to this message will be returned in flags. For example,
MSG_EOR or MSG_TRUNC.
Structure members
addressReturn location for a
GSocketAddress, orNULL.vectorsPointer to an array of input vectors.
num_vectorsThe number of input vectors pointed to by
vectors.bytes_receivedWill be set to the number of bytes that have been received.
flagsCollection of
GSocketMsgFlagsfor the received message, outputted by the call.control_messagesReturn location for a caller-allocated array of
GSocketControlMessages, orNULL.num_control_messagesReturn location for the number of elements in
control_messages.
Available since: 2.48