summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2010-06-02 12:42:48 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2010-06-02 12:42:48 +0200
commit3f065cee2177340e877331a6b08b5a1d92e0f19d (patch)
treef0aa7f154ed2a1f99c55474b9e9d60ac4489b0be
parent0ab3d8a8846de36b13cbbca62fb03e6b6826365a (diff)
downloadjson-dbus-bridge-examples-3f065cee2177340e877331a6b08b5a1d92e0f19d.tar.gz
json-dbus-bridge-examples-3f065cee2177340e877331a6b08b5a1d92e0f19d.tar.xz
[services] python calculator service
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rwxr-xr-xservices/python/calculator.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/services/python/calculator.py b/services/python/calculator.py
new file mode 100755
index 0000000..50674d9
--- /dev/null
+++ b/services/python/calculator.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python2.5
+
+
+import gobject
+
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+
+
+class Service(dbus.service.Object):
+ def __init__(self):
+ busname = dbus.service.BusName("com.pengutronix.jdb.Calculator", dbus.SessionBus())
+ dbus.service.Object.__init__(self, None, "/", busname)
+
+
+ @dbus.service.method("com.pengutronix.jdb.Calculator",
+ in_signature='ii', out_signature='i')
+ def Add( self, a, b):
+ return a + b
+
+ @dbus.service.method("com.pengutronix.jdb.Calculator",
+ in_signature='ai', out_signature='i')
+ def AddAll(self, array):
+ sum = 0
+ for i in array:
+ sum += i
+ return sum
+
+ @dbus.service.method("com.pengutronix.jdb.Calculator",
+ in_signature='ii', out_signature='i')
+ def Sub(self, a, b):
+ return a - b
+
+ @dbus.service.method("com.pengutronix.jdb.Calculator",
+ in_signature='ii', out_signature='i')
+ def Multiply(self, a, b):
+ return a * b
+
+ @dbus.service.method("com.pengutronix.jdb.Calculator",
+ in_signature='ii', out_signature='i')
+ def Divide(self, a, b):
+ return a / b
+
+dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+
+object = Service()
+
+mainloop = gobject.MainLoop()
+mainloop.run()
+