3
# Copyright (c) 2009 Twisted Matrix Laboratories.
4
# See LICENSE for details.
6
from twisted.spread import pb, jelly
7
from twisted.python import log
8
from twisted.internet import reactor
9
from cache_classes import MasterDuckPond
12
def __init__(self, pond):
15
def phase1(self, remote):
17
d = remote.callRemote("takePond", self.pond)
18
d.addCallback(self.phase2).addErrback(log.err)
19
def phase2(self, response):
20
self.pond.addDuck("ugly duckling")
22
reactor.callLater(1, self.phase3)
24
d = self.remote.callRemote("checkDucks")
25
d.addCallback(self.phase4).addErrback(log.err)
26
def phase4(self, dummy):
27
self.pond.removeDuck("one duck")
29
self.remote.callRemote("checkDucks")
30
d = self.remote.callRemote("ignorePond")
31
d.addCallback(self.phase5)
32
def phase5(self, dummy):
33
d = self.remote.callRemote("shutdown")
34
d.addCallback(self.phase6)
35
def phase6(self, dummy):
39
master = MasterDuckPond(["one duck", "two duck"])
42
sender = Sender(master)
43
factory = pb.PBClientFactory()
44
reactor.connectTCP("localhost", 8800, factory)
45
deferred = factory.getRootObject()
46
deferred.addCallback(sender.phase1)
49
if __name__ == '__main__':