Method

GioDBusConnectionsend_message_with_reply_sync

since: 2.26

Declaration [src]

GDBusMessage*
g_dbus_connection_send_message_with_reply_sync (
  GDBusConnection* connection,
  GDBusMessage* message,
  GDBusSendMessageFlags flags,
  gint timeout_msec,
  volatile guint32* out_serial,
  GCancellable* cancellable,
  GError** error
)

Description [src]

Synchronously sends message to the peer represented by connection and blocks the calling thread until a reply is received or the timeout is reached. See g_dbus_connection_send_message_with_reply() for the asynchronous version of this method.

Unless flags contain the G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag, the serial number will be assigned by connection and set on message via g_dbus_message_set_serial(). If out_serial is not NULL, then the serial number used will be written to this location prior to submitting the message to the underlying transport. While it has a volatile qualifier, this is a historical artifact and the argument passed to it should not be volatile.

If connection is closed then the operation will fail with G_IO_ERROR_CLOSED. If cancellable is canceled, the operation will fail with G_IO_ERROR_CANCELLED. If message is not well-formed, the operation fails with G_IO_ERROR_INVALID_ARGUMENT.

Note that error is only set if a local in-process error occurred. That is to say that the returned GDBusMessage object may be of type G_DBUS_MESSAGE_TYPE_ERROR. Use g_dbus_message_to_gerror() to transcode this to a GError.

See this [server][gdbus-server] and [client][gdbus-unix-fd-client] for an example of how to use this low-level API to send and receive UNIX file descriptors.

Note that message must be unlocked, unless flags contain the G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag.

Available since: 2.26

Parameters

message

Type: GDBusMessage

A GDBusMessage.

The data is owned by the caller of the function.
flags

Type: GDBusSendMessageFlags

Flags affecting how the message is sent.

timeout_msec

Type: gint

The timeout in milliseconds, -1 to use the default timeout or G_MAXINT for no timeout.

out_serial

Type: volatile guint32*

Return location for serial number assigned to message when sending it or NULL.

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: GDBusMessage

A locked GDBusMessage that is the reply to message or NULL if error is set.

The caller of the method takes ownership of the data, and is responsible for freeing it.