struct Gio::DBusInterfaceSkeleton::GAuthorizeMethodSignal

Overview

Emitted when a method is invoked by a remote caller and used to determine if the method call is authorized.

Note that this signal is emitted in a thread dedicated to handling the method call so handlers are allowed to perform blocking IO. This means that it is appropriate to call e.g. polkit_authority_check_authorization_sync() with the POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION flag set.

If false is returned then no further handlers are run and the signal handler must take a reference to @invocation and finish handling the call (e.g. return an error via g_dbus_method_invocation_return_error()).

Otherwise, if true is returned, signal emission continues. If no handlers return false, then the method is dispatched. If @interface has an enclosing #GDBusObjectSkeleton, then the #GDBusObjectSkeleton::authorize-method signal handlers run before the handlers for this signal.

The default class handler just returns true.

Please note that the common case is optimized: if no signals handlers are connected and the default class handler isn't overridden (for both @interface and the enclosing #GDBusObjectSkeleton, if any) and #GDBusInterfaceSkeleton:g-flags does not have the %G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD flags set, no dedicated thread is ever used and the call will be handled in the same thread as the object that @interface belongs to was exported in.

Defined in:

lib/gi-crystal/src/auto/gio-2.0/d_bus_interface_skeleton.cr

Instance Method Summary

Instance methods inherited from struct GObject::Signal

[](detail : String) : self [], name : String name

Constructor methods inherited from struct GObject::Signal

new(source : GObject::Object, detail : String? = nil) new

Instance Method Detail

def connect(*, after : Bool = false, &block : Proc(Gio::DBusMethodInvocation, Bool)) : GObject::SignalConnection #

def connect(handler : Proc(Gio::DBusMethodInvocation, Bool), *, after : Bool = false) : GObject::SignalConnection #

def connect(handler : Proc(Gio::DBusInterfaceSkeleton, Gio::DBusMethodInvocation, Bool), *, after : Bool = false) : GObject::SignalConnection #

def emit(invocation : Gio::DBusMethodInvocation) : Nil #

def name : String #
Description copied from struct GObject::Signal

The signal name