core: getReady and asyncConnect now wait full initialisation, not only memory

This commit is contained in:
Goffi 2014-05-15 20:01:56 +02:00
commit e3f0fe289e

View file

@ -82,6 +82,7 @@ class SAT(service.Service):
self._cb_map = {} # map from callback_id to callbacks
self._menus = OrderedDict() # dynamic menus. key: callback_id, value: menu data (dictionnary)
self.__private_data = {} # used for internal callbacks (key = id) FIXME: to be removed
self._initialised = defer.Deferred()
self.profiles = {}
self.plugins = {}
@ -93,7 +94,7 @@ class SAT(service.Service):
except exceptions.BridgeInitError:
log.error(u"Bridge can't be initialised, can't start SàT core")
sys.exit(1)
self.bridge.register("getReady", lambda: self.memory.initialized)
self.bridge.register("getReady", lambda: self._initialized)
self.bridge.register("getVersion", lambda: C.APP_VERSION)
self.bridge.register("getProfileName", self.memory.getProfileName)
self.bridge.register("getProfilesList", self.memory.getProfilesList)
@ -144,6 +145,7 @@ class SAT(service.Service):
log.info(_("Memory initialised"))
self._import_plugins()
ui_contact_list.ContactList(self)
self._initialised.callback(None)
def _import_plugins(self):
"""Import all plugins found in plugins directory"""
@ -204,7 +206,7 @@ class SAT(service.Service):
"""Connect to jabber server with asynchronous reply
@param profile_key: %(doc_profile)s
"""
def backend_initialized(ignore):
def backendInitialised(dummy):
profile = self.memory.getProfileName(profile_key)
if not profile:
log.error(_('Trying to connect a non-existant profile'))
@ -287,7 +289,7 @@ class SAT(service.Service):
self.memory.startProfileSession(profile)
return self.memory.loadIndividualParams(profile).addCallback(afterMemoryInit)
return self.memory.initialized.addCallback(backend_initialized)
return self._initialised.addCallback(backendInitialised)
def disconnect(self, profile_key):
"""disconnect from jabber server"""