方法
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
。数据由方法的调用者所有。