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 method.
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 method.
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 be 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 returned data, and is responsible for freeing it.