Basics

Guides

API Reference

Menu

Basics

Guides

API Reference

class: DBusMethodInvocation

[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].

Members

  • handleObj
  • lib
  • retainedCallbacks
  • signalHandlerNames
  • signalSetterHandlers

Methods

  • DBusMethodInvocation (Handle = null)

    Creates a new DBusMethodInvocation by wrapping a native handle or another wrapper.

    • @p 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 exposing handle(), or null. Returns null when the argument carries no pointer.

    • @p Source is the raw handle, raw buffer, wrapper, or null.
    • @r A raw pointer carrier or null when no pointer is present.
  • getLib ()

    Returns the opened native library for this generated wrapper.

    • @r The opened native library.
  • handle ()

    Returns the wrapped NativeHandle.

    • @r The wrapped NativeHandle.
  • isNull ()

    Returns true when the wrapped handle is null.

    • @r A bool.
  • describe ()

    Returns a small string for debugging generated wrappers.

    • @r A string.
  • asObject ()

    Wraps this handle as Object.

    • @r 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 NULL if 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.

    • @p error_name is A valid D-Bus error name..
    • @p error_message is A valid D-Bus error message..
    • @r 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.

    • @p error is A #GError..
    • @r None.
  • return_value (object parameters)

    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. |[ 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).
    • @p parameters is A #GVariant tuple with out parameters for the method or %NULL if not passing any parameters..
    • @r 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.

    • @p parameters is A #GVariant tuple with out parameters for the method or %NULL if not passing any parameters..
    • @p fd_list is A #GUnixFDList or %NULL..
    • @r None.
  • take_error (object error)

    Like g_dbus_method_invocation_return_gerror() but takes ownership of

    • @error 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.
    • @p error is A #GError..
    • @r None.