pub type GInputMessage = _GInputMessage;
Expand description
GInputMessage: @address: (optional) (out) (transfer full): return location for a #GSocketAddress, or %NULL @vectors: (array length=num_vectors) (out): pointer to an array of input vectors @num_vectors: the number of input vectors pointed to by @vectors @bytes_received: (out): will be set to the number of bytes that have been received @flags: (out): collection of #GSocketMsgFlags for the received message, outputted by the call @control_messages: (array length=num_control_messages) (optional) (out) (transfer full): return location for a caller-allocated array of #GSocketControlMessages, or %NULL @num_control_messages: (out) (optional): return location for the number of elements in @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
.
Since: 2.48
Aliased Type§
struct GInputMessage {
pub address: *mut *mut _GSocketAddress,
pub vectors: *mut _GInputVector,
pub num_vectors: u32,
pub bytes_received: u32,
pub flags: i32,
pub control_messages: *mut *mut *mut _GSocketControlMessage,
pub num_control_messages: *mut u32,
}
Fields§
§address: *mut *mut _GSocketAddress
§vectors: *mut _GInputVector
§num_vectors: u32
§bytes_received: u32
§flags: i32
§control_messages: *mut *mut *mut _GSocketControlMessage
§num_control_messages: *mut u32