方法

GioDBusProxycall

@since: 2.26

声明 [src]

void
g_dbus_proxy_call (
  GDBusProxy* proxy,
  const gchar* method_name,
  GVariant* parameters,
  GDBusCallFlags flags,
  gint timeout_msec,
  GCancellable* cancellable,
  GAsyncReadyCallback callback,
  gpointer user_data
)

描述 [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 (proxy,
                    "TwoStrings",
                    g_variant_new ("(ss)",
                                   "Thing One",
                                   "Thing Two"),
                    G_DBUS_CALL_FLAGS_NONE,
                    -1,
                    NULL,
                    (GAsyncReadyCallback) two_strings_done,
                    &data);

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

这是一个异步方法。操作完成时,callback 将在您调用此方法所在的 [thread-default main context][g-main-context-push-thread-default] 中被调用。然后您可以调用 g_dbus_proxy_call_finish() 以获取操作的结果。有关此方法的同步版本,请参阅 g_dbus_proxy_call_sync()

如果 callbackNULL,则将使用 G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED 标志发送 D-Bus 方法调用消息。

自 2.26 起可用

此方法以异步方式完成。使用 g_dbus_proxy_call_finish()GAsyncReadyCallback 中,获取操作的结果。

参数

method_name

类型: const gchar*

要调用的方法名称。

这些数据由方法的调用者拥有。
该值是一个以 NULL 结尾的 UTF-8 字符串。
parameters

类型: GVariant

GVariant 元组,包含信号参数或在未传递参数时为 NULL

参数可以是 NULL
这些数据由方法的调用者拥有。
标志

类型: GDBusCallFlags

来自 GDBusCallFlags 枚举的标志。

timeout_msec

类型: gint

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

cancellable

类型: GCancellable

一个 GCancellableNULL

参数可以是 NULL
这些数据由方法的调用者拥有。
callback

类型: GAsyncReadyCallback

当一个请求得到满足时调用的 GAsyncReadyCallbackNULL(如果您不关心方法调用的结果)。

参数可以是 NULL
user_data

类型: gpointer

传递给 callback 的数据。

参数可以是 NULL
这些数据由方法的调用者拥有。