summaryrefslogtreecommitdiff
path: root/meta-phosphor
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@us.ibm.com>2015-09-22 05:00:06 +0300
committerBrad Bishop <bradleyb@us.ibm.com>2015-09-22 05:00:06 +0300
commit92c12b536a7452994595bcadca99a93f9485e992 (patch)
tree515b7be842bf57149ab45754e16f3795902ccc97 /meta-phosphor
parent1cd4560b5998edb3086fa7bfe3ab3f3c17a516e6 (diff)
downloadopenbmc-92c12b536a7452994595bcadca99a93f9485e992.tar.xz
Add standard DBUS props to python service example
Diffstat (limited to 'meta-phosphor')
-rw-r--r--meta-phosphor/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/meta-phosphor/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py b/meta-phosphor/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py
index b0523b379..2b59b5887 100644
--- a/meta-phosphor/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py
+++ b/meta-phosphor/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py
@@ -42,10 +42,15 @@ class SampleObjectOne(dbus.service.Object):
class SampleObjectTwo(SampleObjectOne):
def __init__(self, bus, name):
super(SampleObjectTwo, self).__init__(bus, name)
- self.map = {}
+ self.map = { 'empty' : 'add values to me' }
+
+ @dbus.service.signal(IFACE_PREFIX + '.Dict', 'sss')
+ def DictMethodCalled(self, message, key, value):
+ pass
@dbus.service.method(IFACE_PREFIX + '.Dict', 'ss', '')
def SetAValueInTheDict(self, key, value):
+ self.DictMethodCalled("Dict method was invoked", key, value)
self.map[key] = value
@dbus.service.method(IFACE_PREFIX + '.Dict', 's', 's')
@@ -56,6 +61,24 @@ class SampleObjectTwo(SampleObjectOne):
def GetAllValuesFromTheDict(self):
return " ".join( [ x+ ':' + self.map[x] for x in self.map.keys() ] )
+ @dbus.service.method(dbus.PROPERTIES_IFACE, 'ss', 'v')
+ def Get(self, interface, prop):
+ return self.GetAll(interface)[prop]
+
+ @dbus.service.method(dbus.PROPERTIES_IFACE, 's', 'a{sv}')
+ def GetAll(self, interface):
+ if interface == IFACE_PREFIX + '.Dict':
+ return { 'Dict': self.map }
+
+ @dbus.service.method(dbus.PROPERTIES_IFACE, 'ssv')
+ def Set(self, interface, prop, value):
+ if prop == 'Dict':
+ self.map = value
+ self.PropertiesChanged(interface, { prop : value }, [])
+
+ @dbus.service.signal(dbus.PROPERTIES_IFACE, 'sa{sv}as')
+ def PropertiesChanged(self, interface, properties, invalidated_properties):
+ pass
if __name__ == '__main__':
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)