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