[Twisted-Python] how to pass on the connection failed or connection lost error

khawar hasham hasham_james_007 at yahoo.com
Wed Mar 4 07:39:59 MST 2009


Hi

let me first explain the application that I am developing. I have an application that will use the twisted part as a plugin. this twisted part will act as server and as client both. 
my application call the plugin method to send data to server module using connectTCP. now the problem is I can not pass on the connection failed exception to my calling application. 

To explain it further, here is the dummy code

class MyReactor(threading.Thread):

        def __init__(self):

              threading.Thread.__init__(self)

        def run(self):

              reactor.run(installSignalHandlers=0)



class MyFactory(ClientFactory):

         def __init__(self):

              self.msg = None



         def setMsg(self, msg):

               self.msg = msg



         def connectionFailed(self, connector, reason):

               #here i need to send the exception back to the user  


class Plugin:
         def __init__(self):
              self.running = False

         def send(self, msg):
               reactor.callFromThread(self.clientsend, msg)
         def clientsend(self, msg):
               myfactory = MyFactory()
               myfactory.setMsg(msg)
               reactor.connectTCP ('localhost',9999)
               if( not self.running):
                  mr = MyReactor()

                  mr.start()
                  self.running = True

         def startServer(self):
               reactor.listenTCP(9999,ServerFactory())
               if( not self.running):
                  mr = MyReactor()
                  mr.start()
                  self.running = True 

class PluginTest:
        def __init__(self):
             self.plugin = Plugin() 
        def start(self):
              self.plugin.startServer()
        def send(self,msg):
              try:
                  self.plugin.send(msg)
              except:
                     #I want to print send error here
                     # error could be connection fail

ptest = PluginTest()
#I m not starting the server so that I could get the connectionfail error
ptest.send('hi')

Can you suggest me any work around to get the exception in the PluginUser.send method



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20090304/a60e93a2/attachment.html>


More information about the Twisted-Python mailing list