信号

GioDBusInterfaceSkeleton::g-authorize-method

自:2.30

声明

gboolean
g_authorize_method (
  GDBusInterfaceSkeleton* self,
  GDBusMethodInvocation* invocation,
  gpointer user_data
)

描述 [源]

当一个远程调用调用方法时发出信号,并用于确定方法调用是否授权。

请注意,此信号在专门用于处理方法调用的线程中发出,因此处理程序允许执行阻塞的IO。这意味着可以调用例如 polkit_authority_check_authorization_sync() 并设置 POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION 标志。

如果返回 FALSE,则不运行其他处理程序,信号处理程序必须获取 invocation 的引用并完成调用处理(例如,通过 g_dbus_method_invocation_return_error() 返回错误)。

否则,如果返回 TRUE,则信号发出继续。如果没有处理程序返回 FALSE,则调度方法。如果 interface 有包含的 GDBusObjectSkeleton,则此信号的处理器在处理此信号的处理器之前运行。

默认类处理器仅返回 TRUE

请注意,常见情况已进行了优化:如果没有连接任何信号处理器,并且默认类处理器没有被覆盖(对于 interface 和任何包含的 GDBusObjectSkeleton,如果有的话),并且 GDBusInterfaceSkeleton:g-flags 未设置 G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD 标志,则永远不会使用专用线程,并且调用将在导出 interface 属于的对象所在的同一线程中处理。

默认处理器

默认处理器在通过 g_signal_connect() 添加的处理程序之后被调用。

自:2.30

参数

invocation

类型: GDBusMethodInvocation

一个 GDBusMethodInvocation

数据由函数的调用者拥有。

返回值

类型: gboolean

TRUE 如果调用被授权,否则 FALSE