~ntt-pf-lab/nova/monkey_patch_notification

« back to all changes in this revision

Viewing changes to vendor/Twisted-10.0.0/doc/core/examples/ampclient.py

  • Committer: Jesse Andrews
  • Date: 2010-05-28 06:05:26 UTC
  • Revision ID: git-v1:bf6e6e718cdc7488e2da87b21e258ccc065fe499
initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from twisted.internet import reactor, defer
 
2
from twisted.internet.protocol import ClientCreator
 
3
from twisted.protocols import amp
 
4
from ampserver import Sum, Divide
 
5
 
 
6
 
 
7
def doMath():
 
8
    d1 = ClientCreator(reactor, amp.AMP).connectTCP(
 
9
        '127.0.0.1', 1234).addCallback(
 
10
            lambda p: p.callRemote(Sum, a=13, b=81)).addCallback(
 
11
                lambda result: result['total'])
 
12
    def trapZero(result):
 
13
        result.trap(ZeroDivisionError)
 
14
        print "Divided by zero: returning INF"
 
15
        return 1e1000
 
16
    d2 = ClientCreator(reactor, amp.AMP).connectTCP(
 
17
        '127.0.0.1', 1234).addCallback(
 
18
            lambda p: p.callRemote(Divide, numerator=1234,
 
19
                                   denominator=0)).addErrback(trapZero)
 
20
    def done(result):
 
21
        print 'Done with math:', result
 
22
    defer.DeferredList([d1, d2]).addCallback(done)
 
23
 
 
24
if __name__ == '__main__':
 
25
    doMath()
 
26
    reactor.run()