1 个不稳定版本
0.1.0 | 2022 年 12 月 3 日 |
---|
37 在 #kerberos
54KB
1.5K SLoC
Netidx Dbus
Netidx dbus 是从 dbus 到 netidx 的桥梁。netidx-dbus 守护程序将使用 dbus 反射来发现 dbus 中的连接、对象、接口、属性和信号的树状结构,然后它将此信息发布到 netidx。属性被建模为简单的 netidx 值,您可以像任何其他值一样订阅它们,如果属性值发生变化(并且连接的所有者遵循规范并通知更改),则 netidx 值将更新。写入属性会导致 netidx 调用适当的 dbus 方法来设置属性值。方法被建模为 netidx rpc,调用 netidx rpc 将调用 dbus 方法,类型在两个方向上自动转换。信号被建模为不可写的属性,初始值为 null;当发生信号时,已订阅的客户端将接收到其值,但在此信号之后发生的订阅将不会。
netidx-dbus 将 dbus 命名空间组织为按类型组织的树。在顶级有两个子树 activatible
和 connections
。Activatible 列出可以由 dbus 自动启动但可能尚未运行的 dbus 连接。要激活 activatible 服务,只需将其值写入 activatible 子树中的任何位置。Connections 列出当前连接到 dbus 的服务。连接服务包含两个子树,children
和 interfaces
。Children 包含对象的直接子代,在这种情况下是连接的根对象。Interfaces 包含由对象实现的接口列表。在接口下有最多三个子树,methods
、properties
和 signals,如果接口实现了相应的项目,则将存在这些子树。这很遗憾地很冗长,但这是必要的,以防止命名空间冲突,并且它反映了 dbus 对世界的遗憾地冗长思考方式。
依赖关系
~21–56MB
~859K SLoC