方法

GioDBusMethodInvocationreturn_value

自:2.26

声明 [源]

void
g_dbus_method_invocation_return_value (
  GDBusMethodInvocation* invocation,
  GVariant* parameters
)

描述 [源]

通过返回 parameters 完成处理 D-Bus 方法调用。如果 parameters 是浮动的 GVariant,则会被消费。

parameters 必须是正确的格式:它必须是一个包含 D-Bus 方法输出的元组的元组。即使该方法只有一个输出参数,它也必须被包含在元组中。如果没有输出参数,parameters 可以是 NULL 或空元组。

GDBusMethodInvocation *invocation = some_invocation;
g_autofree gchar *result_string = NULL;
g_autoptr (GError) error = NULL;

result_string = calculate_result (&error);

if (error != NULL)
  g_dbus_method_invocation_return_gerror (invocation, error);
else
  g_dbus_method_invocation_return_value (invocation,
                                         g_variant_new ("(s)", result_string));

// Do not free `invocation` here; returning a value does that

此方法将获取 invocation 的所有权。有关 invocation 所有权的信息,请参阅 GDBusInterfaceVTable

自 2.48 以来,如果方法调用请求不发送答复,则此调用将消耗 parameters 并释放 invocation,否则将不执行操作(按照 D-Bus 规范的建议)。

自 2.26 可用

参数

parameters

类型: GVariant

一个包含方法输出参数的 GVariant 元组,或者在不传递任何参数的情况下为 NULL

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