方法
GioDBusConnectionregister_subtree
自: 2.26
声明 [来源]
guint
g_dbus_connection_register_subtree (
GDBusConnection* connection,
const gchar* object_path,
const GDBusSubtreeVTable* vtable,
GDBusSubtreeFlags flags,
gpointer user_data,
GDestroyNotify user_data_free_func,
GError** error
)
描述 [来源]
注册整个动态对象的子树。
在vtable中使用enumerate和introspection函数,将object_path根节点下的所有存在的节点信息传递给远程调用者。
处理子树中任何节点的远程调用时,首先使用enumerate函数检查节点是否存在。如果节点存在或设置了G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES标志,使用introspection函数检查节点是否支持请求的方法。如果支持,则使用dispatch函数确定调用分发位置。收集的GDBusInterfaceVTable和gpointer将被用来调用接口vtable进行处理。
gpointer将被用来调用接口vtable进行处理
请求。
所有对用户提供的代码的调用将在调用此方法时所在的线程的[线程默认主上下文][g-main-context-push-thread-default]中执行。
如果现有子树已在 object_path
注册,或者 error
被设置为 G_IO_ERROR_EXISTS
。
请注意,可以在使用 g_dbus_connection_register_subtree()
注册的子树下注册常规对象(使用 g_dbus_connection_register_object())-如果是这样,则最后尝试子树处理程序。可以将子树处理程序视为未通过 g_dbus_connection_register_object()
或其他绑定方式注册的对象路径的回退处理程序。
请注意,vtable
将被复制,因此您不能在注册后修改它。
有关如何使用此方法的示例,请参阅此 [服务器][gdbus-subtree-server]。
自 2.26 版本起可用。
参数
object_path
-
类型:
const gchar*
要在其上注册子树的对象路径。
数据由方法的调用者拥有。 值是一个以 NULL 结束的 UTF-8 字符串。 vtable
-
用于在子树中枚举、内部检查和派发节点的
GDBusSubtreeVTable
。数据由方法的调用者拥有。 flags
-
用于微调子树行为的标志。
user_data
-
类型:
gpointer
传递给
vtable
中函数的数据。该参数可以是 NULL
。数据由方法的调用者拥有。 user_data_free_func
-
类型:
GDestroyNotify
当子树注销时调用的函数。
error
-
类型:
GError **
用于恢复错误的返回位置的 a recoverable error。
该参数可以是 NULL
。如果返回位置不是 NULL
,那么您必须将其初始化为NULL
的GError*
。如果没有错误,方法将把该参数保留为 NULL
。在发生错误的情况下,该参数将设置为新分配的 GError
;调用者将负责任有权的数据,并负责释放它。