From: Konstantin Stepanov Date: Mon, 20 Dec 2010 10:21:20 +0000 (+0200) Subject: bus: interface to set custom session bus X-Git-Tag: v1.4.0~9 X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;ds=sidebyside;h=9bda8a2ceeb1c2ec944b8dca042b6ab933e5190a;p=dbuscron bus: interface to set custom session bus --- diff --git a/dbuscron/bus.py b/dbuscron/bus.py index 7d7f5b8..6a0c3a9 100644 --- a/dbuscron/bus.py +++ b/dbuscron/bus.py @@ -24,7 +24,6 @@ def dbus_to_str(value): log.error('convert exception', e) raise e - def get_dbus_message_type(message): result = message.__class__.__name__[0:-7] for c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ': @@ -36,16 +35,23 @@ class DbusBus(object): __system_bus = None __session_bus = None - def __new__(cls): + def __new__(cls, *args, **kw): if not cls.__bus: cls.__bus = super(DbusBus, cls).__new__(cls) return cls.__bus - def __init__(self): - self.get_session_bus_address() + def __init__(self, session_bus_address=None): + if session_bus_address: + self.set_session_bus_address(session_bus_address) + else: + self.get_session_bus_address() + from dbus.mainloop.glib import DBusGMainLoop DBusGMainLoop(set_as_default=True) + def set_session_bus_address(self, value): + os.environ['DBUS_SESSION_BUS_ADDRESS'] = str(value) + def get_session_bus_address(self): try: return os.environ['DBUS_SESSION_BUS_ADDRESS'] @@ -56,6 +62,8 @@ class DbusBus(object): log('session bus address aquired', session_bus_address) return session_bus_address + session_bus_address = property(get_session_bus_address, set_session_bus_address) + @property def system(self): if not self.__system_bus: