Gio.DBusMethodInvocation

g GObject.Object GObject.Object Gio.DBusMethodInvocation Gio.DBusMethodInvocation GObject.Object->Gio.DBusMethodInvocation

Subclasses:

None

Methods

Inherited:

GObject.Object (37)

Structs:

GObject.ObjectClass (5)

get_connection ()

get_interface_name ()

get_message ()

get_method_info ()

get_method_name ()

get_object_path ()

get_parameters ()

get_property_info ()

get_sender ()

return_dbus_error (error_name, error_message)

return_error_literal (domain, code, message)

return_gerror (error)

return_value (parameters)

return_value_with_unix_fd_list (parameters, fd_list)

Virtual Methods

Inherited:

GObject.Object (7)

Properties

None

Signals

Inherited:

GObject.Object (1)

Fields

Inherited:

GObject.Object (1)

Class Details

class Gio.DBusMethodInvocation(**kwargs)
Bases:

GObject.Object

Abstract:

No

Instances of the Gio.DBusMethodInvocation 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 Gio.DBusMethodInvocation object is to receive it as an argument to the handle_method_call() function in a Gio.DBusInterfaceVTable that was passed to Gio.DBusConnection.register_object().

New in version 2.26.

get_connection()[source]
Returns:

A Gio.DBusConnection. Do not free, it is owned by self.

Return type:

Gio.DBusConnection

Gets the Gio.DBusConnection the method was invoked on.

New in version 2.26.

get_interface_name()[source]
Returns:

A string. Do not free, it is owned by self.

Return type:

str

Gets the name of the D-Bus interface the method was invoked on.

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 Gio.DBusInterfaceVTable for more information.

New in version 2.26.

get_message()[source]
Returns:

Gio.DBusMessage. Do not free, it is owned by self.

Return type:

Gio.DBusMessage

Gets the Gio.DBusMessage 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 GLib.Variant API.

See this server and client for an example of how to use this low-level API to send and receive UNIX file descriptors.

New in version 2.26.

get_method_info()[source]
Returns:

A Gio.DBusMethodInfo or None. Do not free, it is owned by self.

Return type:

Gio.DBusMethodInfo or None

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 None will be returned. See Gio.DBusMethodInvocation.get_property_info() and Gio.DBusInterfaceVTable for more information.

New in version 2.26.

get_method_name()[source]
Returns:

A string. Do not free, it is owned by self.

Return type:

str

Gets the name of the method that was invoked.

New in version 2.26.

get_object_path()[source]
Returns:

A string. Do not free, it is owned by self.

Return type:

str

Gets the object path the method was invoked on.

New in version 2.26.

get_parameters()[source]
Returns:

A GLib.Variant tuple. Do not unref this because it is owned by self.

Return type:

GLib.Variant

Gets the parameters of the method invocation. If there are no input parameters then this will return a GLib.Variant with 0 children rather than None.

New in version 2.26.

get_property_info()[source]
Returns:

a Gio.DBusPropertyInfo or None

Return type:

Gio.DBusPropertyInfo or None

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 Gio.DBusInterfaceVTable for more information.

If the call was GetAll, None will be returned.

New in version 2.38.

get_sender()[source]
Returns:

A string. Do not free, it is owned by self.

Return type:

str

Gets the bus name that invoked the method.

New in version 2.26.

return_dbus_error(error_name, error_message)[source]
Parameters:
  • error_name (str) – A valid D-Bus error name.

  • error_message (str) – A valid D-Bus error message.

Finishes handling a D-Bus method call by returning an error.

This method will take ownership of self. See Gio.DBusInterfaceVTable for more information about the ownership of self.

New in version 2.26.

return_error_literal(domain, code, message)[source]
Parameters:
  • domain (int) – A #GQuark for the GLib.Error error domain.

  • code (int) – The error code.

  • message (str) – The error message.

Like g_dbus_method_invocation_return_error() but without printf()-style formatting.

This method will take ownership of self. See Gio.DBusInterfaceVTable for more information about the ownership of self.

New in version 2.26.

return_gerror(error)[source]
Parameters:

error (GLib.Error) – A GLib.Error.

Like g_dbus_method_invocation_return_error() but takes a GLib.Error instead of the error domain, error code and message.

This method will take ownership of self. See Gio.DBusInterfaceVTable for more information about the ownership of self.

New in version 2.26.

return_value(parameters)[source]
Parameters:

parameters (GLib.Variant or None) – A GLib.Variant tuple with out parameters for the method or None if not passing any parameters.

Finishes handling a D-Bus method call by returning parameters. If the parameters GLib.Variant 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 None 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 self. See Gio.DBusInterfaceVTable for more information about the ownership of self.

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

New in version 2.26.

return_value_with_unix_fd_list(parameters, fd_list)[source]
Parameters:

Like Gio.DBusMethodInvocation.return_value() but also takes a Gio.UnixFDList.

This method is only available on UNIX.

This method will take ownership of self. See Gio.DBusInterfaceVTable for more information about the ownership of self.

New in version 2.30.