方法
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 而失败。
如果 parameters 的 GVariant 是浮动的,它将被消耗。这允许方便地使用 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()。
如果 callback 为 NULL,则将使用 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-
类型:
GVariantGVariant 元组,包含信号参数或在未传递参数时为
NULL。参数可以是 NULL。这些数据由方法的调用者拥有。 标志-
类型:
GDBusCallFlags来自
GDBusCallFlags枚举的标志。 timeout_msec-
类型:
gint超时时间(单位为毫秒)(
G_MAXINT表示“无限”),或 -1 以使用代理默认超时。 cancellable-
类型:
GCancellable一个
GCancellable或NULL。参数可以是 NULL。这些数据由方法的调用者拥有。 callback-
当一个请求得到满足时调用的
GAsyncReadyCallback或NULL(如果您不关心方法调用的结果)。参数可以是 NULL。 user_data-
类型:
gpointer传递给
callback的数据。参数可以是 NULL。这些数据由方法的调用者拥有。