方法

自: 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

GCancellableNULL

该参数可以是NULL
数据由方法调用者所有。
callback

类型: GAsyncReadyCallback

当请求得到满足时调用GAsyncReadyCallback,或者如果你不关心方法调用的结果,则为NULL

该参数可以是NULL
user_data

类型: gpointer

传递给回调的数据。

该参数可以是NULL
数据由方法调用者所有。