diff options
author | Brad Bishop <bradleyb@us.ibm.com> | 2015-09-22 05:00:06 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@us.ibm.com> | 2015-09-22 05:00:06 +0300 |
commit | 92c12b536a7452994595bcadca99a93f9485e992 (patch) | |
tree | 515b7be842bf57149ab45754e16f3795902ccc97 /meta-phosphor/common | |
parent | 1cd4560b5998edb3086fa7bfe3ab3f3c17a516e6 (diff) | |
download | openbmc-92c12b536a7452994595bcadca99a93f9485e992.tar.xz |
Add standard DBUS props to python service example
Diffstat (limited to 'meta-phosphor/common')
-rw-r--r-- | meta-phosphor/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py | 25 |
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) |