dbus bridge: fixed introspection for dynamically added methods and signals
This commit is contained in:
parent
c71fc3ab02
commit
b200e5f8de
2 changed files with 12 additions and 0 deletions
|
|
@ -342,6 +342,9 @@ class DbusObject(dbus.service.Object):
|
|||
method = locals()[name]
|
||||
setattr(DbusObject, name, dbus.service.method(
|
||||
const_INT_PREFIX+int_suffix, in_signature=in_sign, out_signature=out_sign)(method))
|
||||
function = getattr(self, name)
|
||||
func_table = self._dbus_class_table[self.__class__.__module__ + '.' + self.__class__.__name__][function._dbus_interface]
|
||||
func_table[function.__name__] = function #Needed for introspection
|
||||
|
||||
def addSignal(self, name, int_suffix, signature):
|
||||
"""Dynamically add a signal to Dbus Bridge"""
|
||||
|
|
@ -353,6 +356,9 @@ class DbusObject(dbus.service.Object):
|
|||
signal = locals()[name]
|
||||
setattr(DbusObject, name, dbus.service.signal(
|
||||
const_INT_PREFIX+int_suffix, signature=signature)(signal))
|
||||
function = getattr(self, name)
|
||||
func_table = self._dbus_class_table[self.__class__.__module__ + '.' + self.__class__.__name__][function._dbus_interface]
|
||||
func_table[function.__name__] = function #Needed for introspection
|
||||
|
||||
class DBusBridge(Bridge):
|
||||
def __init__(self):
|
||||
|
|
|
|||
|
|
@ -94,6 +94,9 @@ class DbusObject(dbus.service.Object):
|
|||
method = locals()[name]
|
||||
setattr(DbusObject, name, dbus.service.method(
|
||||
const_INT_PREFIX+int_suffix, in_signature=in_sign, out_signature=out_sign)(method))
|
||||
function = getattr(self, name)
|
||||
func_table = self._dbus_class_table[self.__class__.__module__ + '.' + self.__class__.__name__][function._dbus_interface]
|
||||
func_table[function.__name__] = function #Needed for introspection
|
||||
|
||||
def addSignal(self, name, int_suffix, signature):
|
||||
"""Dynamically add a signal to Dbus Bridge"""
|
||||
|
|
@ -105,6 +108,9 @@ class DbusObject(dbus.service.Object):
|
|||
signal = locals()[name]
|
||||
setattr(DbusObject, name, dbus.service.signal(
|
||||
const_INT_PREFIX+int_suffix, signature=signature)(signal))
|
||||
function = getattr(self, name)
|
||||
func_table = self._dbus_class_table[self.__class__.__module__ + '.' + self.__class__.__name__][function._dbus_interface]
|
||||
func_table[function.__name__] = function #Needed for introspection
|
||||
|
||||
class DBusBridge(Bridge):
|
||||
def __init__(self):
|
||||
|
|
|
|||
Loading…
Reference in a new issue