core, bridge: added getFeatures method:

this async method indicate which plugins are activated, and add an additional data dictionary with plugin specific data.
    The result can be general (if profile==C.PROF_KEY_NONE) or specific to profile.
This commit is contained in:
Goffi 2015-08-21 17:08:26 +02:00
commit 0bf9461416
2 changed files with 74 additions and 0 deletions

View file

@ -287,6 +287,12 @@ class DbusObject(dbus.service.Object):
def getEntityData(self, jid, keys, profile):
return self._callback("getEntityData", unicode(jid), keys, unicode(profile))
@dbus.service.method(const_INT_PREFIX+const_CORE_SUFFIX,
in_signature='s', out_signature='a{sa{ss}}',
async_callbacks=('callback', 'errback'))
def getFeatures(self, profile_key, callback=None, errback=None):
return self._callback("getFeatures", unicode(profile_key), callback=callback, errback=errback)
@dbus.service.method(const_INT_PREFIX+const_CORE_SUFFIX,
in_signature='ssibss', out_signature='a(dssssa{ss})',
async_callbacks=('callback', 'errback'))

View file

@ -175,6 +175,18 @@ sig_in=
sig_out=s
doc=Get "Salut à Toi" full version
[getFeatures]
type=method
category=core
sig_in=s
sig_out=a{sa{ss}}
doc=Get available features and plugins
features can changes for differents profiles, e.g. because of differents server capabilities
doc_param_0=%(doc_profile_key)s
doc_return=dictionary of available features:
plugin import name is used as key, data is an other dict managed by the plugin
async=
[getProfileName]
type=method
category=core