DBusMethodInvocation.returnValue

Finishes handling a D-Bus method call by returning @parameters. If the @parameters GVariant is floating, it is consumed.

It is an error if @parameters is not of the right format: it must be a tuple containing the out-parameters of the D-Bus method. Even if the method has a single out-parameter, it must be contained in a tuple. If the method has no out-parameters, @parameters may be %NULL or an empty tuple.

|[<!-- language="C" --> 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 ]|

This method will take ownership of @invocation. See #GDBusInterfaceVTable for more information about the ownership of @invocation.

Since 2.48, if the method call requested for a reply not to be sent then this call will sink @parameters and free @invocation, but otherwise do nothing (as per the recommendations of the D-Bus specification).

class DBusMethodInvocation
void
returnValue

Parameters

parameters Variant

A #GVariant tuple with out parameters for the method or %NULL if not passing any parameters.

Meta

Since

2.26