From 2b9417707a6cac377e2caca047fde8169236d93e Mon Sep 17 00:00:00 2001 From: "John (J5) Palmieri" Date: Tue, 18 Oct 2005 04:38:05 +0000 Subject: * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT) (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters when constructing struct signatures * python/_dbus.py (Bus): handle private connections using the private keyword in the constructor. defaults to private=False (Bus::close): new method to close a connection to the bus * python/dbus_bindings.pyx (Connection::close): renamed method was previously called disconnect (bus_get): now supports getting a private connection * python/proxies.py (ProxyMethod::__call__): check if ignore_reply keyword is set to True. if it is, execute the method without waiting for a reply (ProxyObject::_introspect_execute_queue): new method for executing all the pending methods that were waiting for the introspect to finish. this is called when introspect either succeeds or fails (ProxyObject::_introspect_error_handler): call queued methods --- python/_dbus.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'python/_dbus.py') diff --git a/python/_dbus.py b/python/_dbus.py index 890cdda8..2e7e671b 100644 --- a/python/_dbus.py +++ b/python/_dbus.py @@ -67,8 +67,8 @@ class Bus: START_REPLY_SUCCESS = dbus_bindings.DBUS_START_REPLY_SUCCESS START_REPLY_ALREADY_RUNNING = dbus_bindings.DBUS_START_REPLY_ALREADY_RUNNING - def __init__(self, bus_type=TYPE_SESSION, use_default_mainloop=True): - self._connection = dbus_bindings.bus_get(bus_type) + def __init__(self, bus_type=TYPE_SESSION, use_default_mainloop=True, private=False): + self._connection = dbus_bindings.bus_get(bus_type, private) self._connection.add_filter(self._signal_func) self._match_rule_tree = SignalMatchTree() @@ -78,25 +78,28 @@ class Bus: if func != None: func(self) + def close(self): + self._connection.close() + def get_connection(self): return self._connection - def get_session(): + def get_session(private=False): """Static method that returns the session bus""" - return SessionBus() + return SessionBus(private) get_session = staticmethod(get_session) - def get_system(): + def get_system(private=False): """Static method that returns the system bus""" - return SystemBus() + return SystemBus(private) get_system = staticmethod(get_system) - def get_starter(): + def get_starter(private=False): """Static method that returns the starter bus""" - return StarterBus() + return StarterBus(private) get_starter = staticmethod(get_starter) @@ -196,21 +199,21 @@ class Bus: class SystemBus(Bus): """The system-wide message bus """ - def __init__(self): - Bus.__init__(self, Bus.TYPE_SYSTEM) + def __init__(self, use_default_mainloop=True, private=False): + Bus.__init__(self, Bus.TYPE_SYSTEM, use_default_mainloop, private) class SessionBus(Bus): """The session (current login) message bus """ - def __init__(self): - Bus.__init__(self, Bus.TYPE_SESSION) + def __init__(self, use_default_mainloop=True, private=False): + Bus.__init__(self, Bus.TYPE_SESSION, use_default_mainloop, private) class StarterBus(Bus): """The bus that activated this process (if this process was launched by DBus activation) """ - def __init__(self): - Bus.__init__(self, Bus.TYPE_STARTER) + def __init__(self, use_default_mainloop=True, private=False): + Bus.__init__(self, Bus.TYPE_STARTER, use_default_mainloop, private) class Interface: """An inteface into a remote object -- cgit