Method

GioSocketsend_message_with_timeout

since: 2.60

Declaration

GPollableReturn
g_socket_send_message_with_timeout (
  GSocket* socket,
  GSocketAddress* address,
  const GOutputVector* vectors,
  gint num_vectors,
  GSocketControlMessage** messages,
  gint num_messages,
  gint flags,
  gint64 timeout_us,
  gsize* bytes_written,
  GCancellable* cancellable,
  GError** error
)

Description

This behaves exactly the same as g_socket_send_message(), except that the choice of timeout behavior is determined by the timeout_us argument rather than by sockets properties.

On error G_POLLABLE_RETURN_FAILED is returned and error is set accordingly, or if the socket is currently not writable G_POLLABLE_RETURN_WOULD_BLOCK is returned. bytes_written will contain 0 in both cases.

Available since: 2.60

Parameters

address

Type: GSocketAddress

A GSocketAddress, or NULL.

The argument can be NULL.
The data is owned by the caller of the function.
vectors

Type: An array of GOutputVector

An array of GOutputVector structs.

The length of the array is specified in the num_vectors argument.
The data is owned by the caller of the function.
num_vectors

Type: gint

The number of elements in vectors, or -1

messages

Type: An array of GSocketControlMessage*

A pointer to an array of GSocketControlMessages, or NULL.

The argument can be NULL.
The length of the array is specified in the num_messages argument.
The data is owned by the caller of the function.
num_messages

Type: gint

Number of elements in messages, or -1.

flags

Type: gint

An int containing GSocketMsgFlags flags, which may additionally contain other platform specific flags

timeout_us

Type: gint64

The maximum time (in microseconds) to wait, or -1

bytes_written

Type: gsize*

Location to store the number of bytes that were written to the socket.

The argument will be set by the function.
The argument can be NULL.
cancellable

Type: GCancellable

A %GCancellable or NULL.

The argument can be NULL.
The data is owned by the caller of the function.
error

Type: GError **

The return location for a recoverable error.

The argument can be NULL.
If the return location is not NULL, then you must initialize it to a NULL GError*.
The argument will left initialized to NULL by the method if there are no errors.
In case of error, the argument will be set to a newly allocated GError; the caller will take ownership of the data, and be responsible for freeing it.

Return value

Type: GPollableReturn

G_POLLABLE_RETURN_OK if all data was successfully written, G_POLLABLE_RETURN_WOULD_BLOCK if the socket is currently not writable, or G_POLLABLE_RETURN_FAILED if an error happened and error is set.