Method

GioDBusConnectioncall_sync

since: 2.26

Declaration

GVariant*
g_dbus_connection_call_sync (
  GDBusConnection* connection,
  const gchar* bus_name,
  const gchar* object_path,
  const gchar* interface_name,
  const gchar* method_name,
  GVariant* parameters,
  const GVariantType* reply_type,
  GDBusCallFlags flags,
  gint timeout_msec,
  GCancellable* cancellable,
  GError** error
)

Description

Synchronously invokes the method_name method on the interface_name D-Bus interface on the remote object at object_path owned by bus_name.

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 parameters contains a value not compatible with the D-Bus protocol, the operation fails with G_IO_ERROR_INVALID_ARGUMENT.

If reply_type is non-NULL then the reply will be checked for having this type and an error will be raised if it does not match. Said another way, if you give a reply_type then any non-NULL return value will be of this type.

If the parameters GVariant is floating, it is consumed. This allows convenient ‘inline’ use of g_variant_new(), e.g.:

 g_dbus_connection_call_sync (connection,
                              "org.freedesktop.StringThings",
                              "/org/freedesktop/StringThings",
                              "org.freedesktop.StringThings",
                              "TwoStrings",
                              g_variant_new ("(ss)",
                                             "Thing One",
                                             "Thing Two"),
                              NULL,
                              G_DBUS_CALL_FLAGS_NONE,
                              -1,
                              NULL,
                              &error);

The calling thread is blocked until a reply is received. See g_dbus_connection_call() for the asynchronous version of this method.

Available since: 2.26

Parameters

bus_name

Type: const gchar*

A unique or well-known bus name or NULL if connection is not a message bus connection.

The argument can be NULL.
The data is owned by the caller of the function.
The value is a NUL terminated UTF-8 string.
object_path

Type: const gchar*

Path of remote object.

The data is owned by the caller of the function.
The value is a NUL terminated UTF-8 string.
interface_name

Type: const gchar*

D-Bus interface to invoke method on.

The data is owned by the caller of the function.
The value is a NUL terminated UTF-8 string.
method_name

Type: const gchar*

The name of the method to invoke.

The data is owned by the caller of the function.
The value is a NUL terminated UTF-8 string.
parameters

Type: GVariant

A GVariant tuple with parameters for the method or NULL if not passing parameters.

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

Type: GVariantType

The expected type of the reply, or NULL.

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

Type: GDBusCallFlags

Flags from the GDBusCallFlags enumeration.

timeout_msec

Type: gint

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

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

NULL if error is set. Otherwise a non-floating GVariant tuple with return values. Free with g_variant_unref().

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