Basics
Guides
API Reference
Basics
Guides
API Reference
[17:7] extends: object
Instances of the GDBusMethodInvocation class are used when handling D-Bus
method calls. It provides a way to asynchronously return results and errors.
The normal way to obtain a GDBusMethodInvocation object is to receive it as
an argument to the handle_method_call() function in a
[type@Gio.DBusInterfaceVTable] that was passed to
[method@Gio.DBusConnection.register_object].
DBusMethodInvocation (Handle = null)
Creates a new
DBusMethodInvocationby wrapping a native handle or another wrapper.
Handle is the native handle or another wrapper whose handle to adopt.toNativeHandle (Source)
Normalizes a constructor argument into a raw pointer carrier. Accepts a raw NativeHandle, a raw NativeBuffer returned from
fn.call(...), another generated wrapper exposinghandle(), or null. Returns null when the argument carries no pointer.
Source is the raw handle, raw buffer, wrapper, or null.A raw pointer carrier or null when no pointer is present.getLib ()
Returns the opened native library for this generated wrapper.
The opened native library.handle ()
Returns the wrapped NativeHandle.
The wrapped NativeHandle.isNull ()
Returns true when the wrapped handle is null.
A bool.describe ()
Returns a small string for debugging generated wrappers.
A string.asObject ()
Wraps this handle as
Object.
A Object object.get_connection ()
Gets the #GDBusConnection the method was invoked on.
get_interface_name ()
Gets the name of the D-Bus interface the method was invoked on. This can be
NULLif it was not specified by the sender. See [callback@Gio.DBusInterfaceMethodCallFunc] or the D-Bus Specification for details on when this can happen and how it should be handled. If this method call is a property Get, Set or GetAll call that has been redirected to the method call handler then "org.freedesktop.DBus.Properties" will be returned. See #GDBusInterfaceVTable for more information.
get_message ()
Gets the #GDBusMessage for the method invocation. This is useful if you need to use low-level protocol features, such as UNIX file descriptor passing, that cannot be properly expressed in the #GVariant API. See this [server][class@Gio.DBusConnection#an-example-d-bus-server] and [client][class@Gio.DBusConnection#an-example-for-file-descriptor-passing] for an example of how to use this low-level API to send and receive UNIX file descriptors.
get_method_info ()
Gets information about the method call, if any. If this method invocation is a property Get, Set or GetAll call that has been redirected to the method call handler then %NULL will be returned. See g_dbus_method_invocation_get_property_info() and #GDBusInterfaceVTable for more information.
get_method_name ()
Gets the name of the method that was invoked.
get_object_path ()
Gets the object path the method was invoked on.
get_parameters ()
Gets the parameters of the method invocation. If there are no input parameters then this will return a GVariant with 0 children rather than NULL.
get_property_info ()
Gets information about the property that this method call is for, if any. This will only be set in the case of an invocation in response to a property Get or Set call that has been directed to the method call handler for an object on account of its property_get() or property_set() vtable pointers being unset. See #GDBusInterfaceVTable for more information. If the call was GetAll, %NULL will be returned.
get_sender ()
Gets the bus name that invoked the method. This can return %NULL if not specified by the caller, e.g. on peer-to-peer connections.
get_user_data ()
Gets the @user_data #gpointer passed to g_dbus_connection_register_object().
return_dbus_error (string error_name, string error_message)
Finishes handling a D-Bus method call by returning an error. This method will take ownership of @invocation. See #GDBusInterfaceVTable for more information about the ownership of @invocation.
error_name is A valid D-Bus error name..error_message is A valid D-Bus error message..None.return_gerror (object error)
Like g_dbus_method_invocation_return_error() but takes a #GError instead of the error domain, error code and message. This method will take ownership of @invocation. See #GDBusInterfaceVTable for more information about the ownership of @invocation.
error is A #GError..None.return_value (object parameters)
Finishes handling a D-Bus method call by returning @parameters. If the
GVariant is floating, it is consumed. It is an error ifis 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. |[ 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 ofSince 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).parameters is A #GVariant tuple with out parameters for the method or %NULL if not passing any parameters..None.return_value_with_unix_fd_list (object parameters, object fd_list)
Like g_dbus_method_invocation_return_value() but also takes a #GUnixFDList. This method is only available on UNIX. This method will take ownership of @invocation. See #GDBusInterfaceVTable for more information about the ownership of @invocation.
parameters is A #GVariant tuple with out parameters for the method or %NULL if not passing any parameters..fd_list is A #GUnixFDList or %NULL..None.take_error (object error)
Like g_dbus_method_invocation_return_gerror() but takes ownership of
so the caller does not need to free it. This method will take ownership of @invocation. See #GDBusInterfaceVTable for more information about the ownership of @invocation.error is A #GError..None.
Aussom
Write once. Embed everywhere.
Copyright 2026 Austin Lehman. All rights reserved.