[Twisted-Python] Howto access protocol outside of the class

Eric Mangold teratorn at twistedmatrix.com
Sun Feb 11 00:01:36 EST 2007


On Sat, 10 Feb 2007 16:16:06 -0600, Lee Connell <lee.a.connell at gmail.com>  
wrote:

> I have a class: class ForemClient(LineReceiver):
>
>
>
> I am using wxPython to build a GUI.  I am having the hardest time trying  
> to
> access the instance of this class so I can call the transport methods  
> from a
> wxPython button event.  How can I make this accessible outside of the  
> class
> itself?  I seen that ClientCreator could be used for this, but I can?t  
> find
> an example of using the instance outside of itself.  Anyone able to help?
>
>
>     chat = ClientCreator(reactor, ForemClient)
>
>     d = chat.connectSSL("localhost", 1025, ssl.ClientContextFactory())
>
>     reactor.run()

You already asked this same basic question two hours ago... Not sure why  
you would re-phrase it here.

Anyway, the answer is to save the protocol instance when it gets created.  
This happens in the buildProtocol() method on your factory.

By default, the factory creates the protocol instance and returns it to  
Twisted. It's not available to user-level code directly.

So you should implement your own buildProtocol(). Have a look at  
Factory.buildProtocol and duplicate the things that it does. Then you are  
free to save a reference to the newly created protocol in any way you see  
fit.

Cheers,
-- 
Eric Mangold
Twisted/Win32 Co-Maintainer




More information about the Twisted-Python mailing list