我正在尝试编写一个dbus对象,它导出用户,并在/path/to/users处创建了我的对象。此对象具有“用户已添加”、“用户已删除”等信号
然后,我想为用户a、b和c提供对/path/to/users/[a,b,c]的每个用户的访问权限,这将为每个用户提供一些方法。在
但我的问题是如何“列出”路径/path/to/users以返回a、b、c?在
我唯一的选择是从路径.to.users.ListUsers(),是否有可以继承的标准接口或某种形式的自省?在
谢谢。在
注意。我用python来做这个,但我认为这个问题与语言无关
Tags:
standard D-Bus Introspectable interface提供了一个方法来反省一个对象;data returned by it包含一个对象列表。在
大多数D-Bus绑定,包括
dbus-python
,在服务端为您实现Introspectable
;因此您的客户机应该能够调用位于/path/to/users
的对象上的Introspect
方法,以查看存在哪些用户对象。我不知道dbus-python
是否为该数据提供了更好的接口。就我个人而言,我将实现一个ListUsers()
方法,它返回a{oa{sv}}
-也就是说,一个对象路径列表,以及关于这些对象的一些属性(例如,相当于在每个对象上调用Properties.GetAll("uk.co.example.MyService.User")
)。在(如果您对未来感兴趣,davidzeuthan已经对类似的东西进行了proposed标准化。)
相关问题 更多 >
编程相关推荐