方法
自: 2.26
声明 [源代码]
void
g_dbus_connection_call (
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,
GAsyncReadyCallback callback,
gpointer user_data
)
描述 [源代码]
异步地在远程对象的 object_path
上的 interface_name
D-Bus 接口调用 method_name
方法。该远程对象由 bus_name
所拥有。
如果 connection
已关闭,则操作将失败并返回 G_IO_ERROR_CLOSED
。如果 cancellable
被取消,则操作将失败并返回 G_IO_ERROR_CANCELLED
。如果 parameters
包含与 D-Bus 协议不兼容的值,则操作失败并返回 G_IO_ERROR_INVALID_ARGUMENT
。
如果 reply_type
不是 NULL
,则将检查回复是否具有此类型,如果不匹配则将引发错误。换句话说,如果您提供了 reply_type
,则任何非 NULL
的返回值都将为此类型。除非它是 G_VARIANT_TYPE_UNIT
,否则 reply_type
将是一个包含一个或多个值的元组。
如果 parameters
是浮动的 GVariant
,则它将被消耗。这允许方便地使用 g_variant_new() 等 'inline' 的使用,例如。
g_dbus_connection_call (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,
(GAsyncReadyCallback) two_strings_done,
NULL);
这是一个异步方法。当操作完成时,回调
将在调用此方法的线程的[线程默认主上下文][g-main-context-push-thread-default]中调用。您可以随后调用g_dbus_connection_call_finish()
以获取操作的结果。有关此函数的同步版本,请参阅g_dbus_connection_call_sync()
。
如果回调
是NULL
,则将使用G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED
标志发送D-Bus方法调用消息。
自:2.26以来
此方法以异步方式完成。在GAsyncReadyCallback
内部使用g_dbus_connection_call_finish()
来获取操作结果。
参数
bus_name
-
类型:
const gchar*
一个唯一的或已知的总线名称,或者如果
connection
不是一个消息总线连接,则为NULL
。该参数可以是 NULL
。数据由方法调用者所有。 该值是一个以NUL结尾的UTF-8字符串。 object_path
-
类型:
const gchar*
远程对象的路径。
数据由方法调用者所有。 该值是一个以NUL结尾的UTF-8字符串。 interface_name
-
类型:
const gchar*
在要调用方法上的D-Bus接口。
数据由方法调用者所有。 该值是一个以NUL结尾的UTF-8字符串。 method_name
-
类型:
const gchar*
要调用的方法的名称。
数据由方法调用者所有。 该值是一个以NUL结尾的UTF-8字符串。 parameters
-
类型:
GVariant
一个包含方法的参数的
GVariant
元组,或者如果不传递参数则为NULL
。该参数可以是 NULL
。数据由方法调用者所有。 reply_type
-
类型:
GVariantType
期望的回复类型(将是一个元组),或
NULL
。该参数可以是 NULL
。数据由方法调用者所有。 flags
-
类型:
GDBusCallFlags
GDBusCallFlags
枚举中的标志。 timeout_msec
-
类型:
gint
超时(毫秒),-1以使用默认超时或
G_MAXINT
以没有超时。 cancellable
-
类型:
GCancellable
GCancellable
或NULL
。该参数可以是 NULL
。数据由方法调用者所有。 callback
-
当请求得到满足时调用
GAsyncReadyCallback
,或者如果你不关心方法调用的结果,则为NULL
。该参数可以是 NULL
。 user_data
-
类型:
gpointer
传递给
回调
的数据。该参数可以是 NULL
。数据由方法调用者所有。