summaryrefslogtreecommitdiff
path: root/doc/core/examples/ampclient.py
diff options
context:
space:
mode:
Diffstat (limited to 'doc/core/examples/ampclient.py')
-rw-r--r--doc/core/examples/ampclient.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/doc/core/examples/ampclient.py b/doc/core/examples/ampclient.py
new file mode 100644
index 0000000..5349448
--- /dev/null
+++ b/doc/core/examples/ampclient.py
@@ -0,0 +1,26 @@
+from twisted.internet import reactor, defer
+from twisted.internet.protocol import ClientCreator
+from twisted.protocols import amp
+from ampserver import Sum, Divide
+
+
+def doMath():
+ d1 = ClientCreator(reactor, amp.AMP).connectTCP(
+ '127.0.0.1', 1234).addCallback(
+ lambda p: p.callRemote(Sum, a=13, b=81)).addCallback(
+ lambda result: result['total'])
+ def trapZero(result):
+ result.trap(ZeroDivisionError)
+ print "Divided by zero: returning INF"
+ return 1e1000
+ d2 = ClientCreator(reactor, amp.AMP).connectTCP(
+ '127.0.0.1', 1234).addCallback(
+ lambda p: p.callRemote(Divide, numerator=1234,
+ denominator=0)).addErrback(trapZero)
+ def done(result):
+ print 'Done with math:', result
+ defer.DeferredList([d1, d2]).addCallback(done)
+
+if __name__ == '__main__':
+ doMath()
+ reactor.run()