信号
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 |