方法

GioDBusProxycall_sync

自:2.26

声明 [src]

GVariant*
g_dbus_proxy_call_sync (
  GDBusProxy* proxy,
  const gchar* method_name,
  GVariant* parameters,
  GDBusCallFlags flags,
  gint timeout_msec,
  GCancellable* cancellable,
  GError** error
)

描述 [src]

同步调用 proxy 上的 method_name 方法。

如果 method_name 包含任何点,则 name 被分割成接口和方法名部分。这允许使用 proxy 来调用其他接口的方法。

如果与 proxy 相关的 GDBusConnection 已断开连接,则操作将失败并返回 G_IO_ERROR_CLOSED。如果 cancellable 被取消,则操作将失败并返回 G_IO_ERROR_CANCELLED。如果 parameters 包含不与 D-Bus 协议兼容的值,则操作将失败并返回 G_IO_ERROR_INVALID_ARGUMENT

如果 parametersGVariant 是浮动的,它将被消耗。这允许方便地使用 g_variant_new() 的内联使用,例如。

 g_dbus_proxy_call_sync (proxy,
                         "TwoStrings",
                         g_variant_new ("(ss)",
                                        "Thing One",
                                        "Thing Two"),
                         G_DBUS_CALL_FLAGS_NONE,
                         -1,
                         NULL,
                         &error);

调用线程在收到回复之前被阻塞。关于此方法的异步版本,请参阅 g_dbus_proxy_call()

如果 proxy 有一个预期的接口(见 GDBusProxy:g-interface-info)并且 method_name 被它引用,则返回值将与返回类型进行校验。

自:2.26

参数

method_name

类型: const gchar*

要调用的方法的名字。

此数据归方法的调用者所有。
值是终止于 null 的 UTF-8 字符串。
parameters

类型: GVariant

包含信号参数的 GVariant 元组,如果没有传递参数则是 NULL

此参数可以是 NULL
此数据归方法的调用者所有。
flags

类型: GDBusCallFlags

GDBusCallFlags 枚举中的标志。

timeout_msec

类型: gint

以毫秒为单位的超时时间(G_MAXINT 表示“无限”),或 -1 使用代理默认超时。

cancellable

类型: GCancellable

一个 GCancellableNULL

此参数可以是 NULL
此数据归方法的调用者所有。
error

类型: GError **

可恢复错误 的返回位置。

此参数可以是 NULL
如果返回位置不是 NULL,则必须将其初始化为 NULLGError*
如果没有错误,该方法将使参数初始化为 NULL
如果发生错误,参数将被设置为一个新的 GError;调用者将拥有数据,并负责释放它。

返回值

类型: GVariant

NULL 如果设置了 error。否则是一个包含返回值的 GVariant 元组。使用 g_variant_unref() 释放。

方法的调用者将拥有返回的数据,并负责释放它。