方法
自: 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-
类型:
GDBusCallFlagsGDBusCallFlags枚举中的标志。 timeout_msec-
类型:
gint超时(毫秒),-1以使用默认超时或
G_MAXINT以没有超时。 cancellable-
类型:
GCancellableGCancellable或NULL。该参数可以是 NULL。数据由方法调用者所有。 callback-
当请求得到满足时调用
GAsyncReadyCallback,或者如果你不关心方法调用的结果,则为NULL。该参数可以是 NULL。 user_data-
类型:
gpointer传递给
回调的数据。该参数可以是 NULL。数据由方法调用者所有。