[Twisted-Python] Guidance on Proxy-type Application

glyph at divmod.com glyph at divmod.com
Fri May 29 11:22:40 EDT 2009


On 08:24 am, michaelnt at gmail.com wrote:
>2009/5/28 <glyph at divmod.com>

>Thanks for the very interesting example which I mainly follow apart 
>from the
>lineReceived method in the ProxyClient, don't we need to add a callback 
>to
>the deferred before appending it to the requestQueue?

Definitely not!  That would defeat the purpose.  The Deferred doesn't 
have a value yet: you're waiting for the other side of the connection to 
respond with an echo line.  As you can see, the result becomes available 
in lineReceived:
>class ProxyClient(LineReceiver):
>    def connectionMade(self):
>        self.requestQueue = []
>
>    def forwardLine(self, line):
>        self.sendLine(line)
>        d = Deferred()
>        self.requestQueue.append(d)
>        return d

And we callback the Deferred when it is available:
>    def lineReceived(self, line):
>        self.requestQueue.pop(0).callback(line)
>
>Thanks, Michael

HTH,

-glyph




More information about the Twisted-Python mailing list