diff options
Diffstat (limited to 'doc/core/examples/ampclient.py')
-rw-r--r-- | doc/core/examples/ampclient.py | 26 |
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() |