如何使用dbus公开对象列表

时间:2011-11-05 21:55:45

标签: python linux dbus

我希望我的dbus接口有这样的路径:

  • /org/fusegui/sites/example.com
  • /org/fusegui/sites/www.kernel.org

以上每个都是一个具有相同方法的对象:host(),name(),timeout()等。

我如何在python中实现上述目标?例如,如果我有一个列表填充这些网站对象。我如何循环它们并将其添加到dbus服务?

2 个答案:

答案 0 :(得分:0)

dbus-python:Exporting Objects

答案 1 :(得分:0)

我一起制作了这个:

import gtk
import dbus
import dbus.service
from dbus.mainloop.glib import DBusGMainLoop

class MyDBUSObject(dbus.service.Object):
    def __init__(self, path):
        bus_name = dbus.service.BusName('org.fusegui', bus=dbus.SessionBus())
        dbus.service.Object.__init__(self, bus_name, path)

    @dbus.service.method('org.fusegui.site')
    def hello(self):
        return "Hello,World!"

DBusGMainLoop(set_as_default=True)
for i in range(0, 50):
    MyDBUSObject('/org/fusegui/sites/%i' % i)
gtk.main()

似乎是像我想要的那样导出对象。我不知道这是不是正确的做法。