comparison src/bridge/bridge_constructor/dbus_core_template.py @ 298:15c8916317d0

dbus bridge: added doc parameter, unmanaged yet
author Goffi <goffi@goffi.org>
date Sun, 20 Feb 2011 17:21:03 +0100
parents c25371424090
children e044d1dc37d1
comparison
equal deleted inserted replaced
297:c5554e2939dd 298:15c8916317d0
82 if opening_count == 0: 82 if opening_count == 0:
83 break 83 break
84 i+=1 84 i+=1
85 return attr_string 85 return attr_string
86 86
87 def addMethod(self, name, int_suffix, in_sign, out_sign): 87 def addMethod(self, name, int_suffix, in_sign, out_sign, doc={}):
88 """Dynamically add a method to Dbus Bridge""" 88 """Dynamically add a method to Dbus Bridge"""
89 #FIXME: Better way ??? 89 #FIXME: Better way ???
90 attributes = self.__attribute_string(in_sign) 90 attributes = self.__attribute_string(in_sign)
91 91
92 code = compile ('def '+name+' (self,'+attributes+'): return self.cb["'+name+'"]('+attributes+')', '<DBus bridge>','exec') 92 code = compile ('def '+name+' (self,'+attributes+'): return self.cb["'+name+'"]('+attributes+')', '<DBus bridge>','exec')
96 const_INT_PREFIX+int_suffix, in_signature=in_sign, out_signature=out_sign)(method)) 96 const_INT_PREFIX+int_suffix, in_signature=in_sign, out_signature=out_sign)(method))
97 function = getattr(self, name) 97 function = getattr(self, name)
98 func_table = self._dbus_class_table[self.__class__.__module__ + '.' + self.__class__.__name__][function._dbus_interface] 98 func_table = self._dbus_class_table[self.__class__.__module__ + '.' + self.__class__.__name__][function._dbus_interface]
99 func_table[function.__name__] = function #Needed for introspection 99 func_table[function.__name__] = function #Needed for introspection
100 100
101 def addSignal(self, name, int_suffix, signature): 101 def addSignal(self, name, int_suffix, signature, doc={}):
102 """Dynamically add a signal to Dbus Bridge""" 102 """Dynamically add a signal to Dbus Bridge"""
103 #FIXME: Better way ??? 103 #FIXME: Better way ???
104 attributes = self.__attribute_string(signature) 104 attributes = self.__attribute_string(signature)
105 105
106 code = compile ('def '+name+' (self,'+attributes+'): debug ("'+name+' signal")', '<DBus bridge>','exec') 106 code = compile ('def '+name+' (self,'+attributes+'): debug ("'+name+' signal")', '<DBus bridge>','exec')
125 125
126 def register(self, name, callback): 126 def register(self, name, callback):
127 debug("registering DBus bridge method [%s]", name) 127 debug("registering DBus bridge method [%s]", name)
128 self.dbus_bridge.register(name, callback) 128 self.dbus_bridge.register(name, callback)
129 129
130 def addMethod(self, name, int_suffix, in_sign, out_sign, method): 130 def addMethod(self, name, int_suffix, in_sign, out_sign, method, doc={}):
131 """Dynamically add a method to Dbus Bridge""" 131 """Dynamically add a method to Dbus Bridge"""
132 print ("Adding method [%s] to DBus bridge" % name) 132 print ("Adding method [%s] to DBus bridge" % name)
133 self.dbus_bridge.addMethod(name, int_suffix, in_sign, out_sign) 133 self.dbus_bridge.addMethod(name, int_suffix, in_sign, out_sign)
134 self.register(name, method) 134 self.register(name, method)
135 135
136 def addSignal(self, name, int_suffix, signature): 136 def addSignal(self, name, int_suffix, signature, doc={}):
137 self.dbus_bridge.addSignal(name, int_suffix, signature) 137 self.dbus_bridge.addSignal(name, int_suffix, signature)
138 setattr(DBusBridge, name, getattr(self.dbus_bridge, name)) 138 setattr(DBusBridge, name, getattr(self.dbus_bridge, name))
139 139