Esempio n. 1
0
    def listen_forever(self, doneflag=None):
        """Main event processing loop for RawServer.
           RawServer listens until the doneFlag is set by some other
           thread.  The doneFlag tells all threads to clean-up and then
           exit."""

        if not doneflag:
            doneflag = DeferredEvent()
        assert isinstance(doneflag, DeferredEvent)
        self.doneflag = doneflag

        if not self.associated:
            self.associate_thread()

        if self.listened:
            Exception(
                _("listen_forever() should only be called once per reactor."))

        if main_thread == thread.get_ident() and not self.sigint_installed:
            self.install_sigint_handler()

        if is_iocpreactor and main_thread == thread.get_ident():

            def pulse():
                self.add_task(1, pulse)

            pulse()

        reactor.callLater(0, self.doneflag.addCallback, self._safestop)
        self.listened = True

        reactor.suggestThreadPoolSize(3)

        if profile:
            self.prof.enable()

        if noSignals:
            reactor.run(installSignalHandlers=False)
        else:
            reactor.run()

        if profile:
            self.prof.disable()
            st = Stats(self.prof.getstats())
            st.sort()
            f = open(prof_file_name, 'wb')
            st.dump(file=f)
Esempio n. 2
0
    def listen_forever(self, doneflag=None):
        """Main event processing loop for RawServer.
           RawServer listens until the doneFlag is set by some other
           thread.  The doneFlag tells all threads to clean-up and then
           exit."""

        if not doneflag:
            doneflag = DeferredEvent()
        assert isinstance(doneflag, DeferredEvent)
        self.doneflag = doneflag

        if not self.associated:
            self.associate_thread()

        if self.listened:
            Exception(_("listen_forever() should only be called once per reactor."))

        if main_thread == thread.get_ident() and not self.sigint_installed:
            self.install_sigint_handler()

        if is_iocpreactor and main_thread == thread.get_ident():
            def pulse():
                self.add_task(1, pulse)
            pulse()

        reactor.callLater(0, self.doneflag.addCallback, self._safestop)
        self.listened = True

        reactor.suggestThreadPoolSize(3)

        if profile:
            self.prof.enable()
        
        if noSignals:
            reactor.run(installSignalHandlers=False)
        else:
            reactor.run()

        if profile:
            self.prof.disable()
            st = Stats(self.prof.getstats())
            st.sort()
            f = open(prof_file_name, 'wb')
            st.dump(file=f)
    factory = ClientFactory()
    factory.protocol = PrintingReplicationListener
    reactor.connectTCP('127.0.0.1', 9000, factory)


    ## listener 2 (ebrpc)  
    from BTL import twisted_ebrpc, replication
    from twisted.web import server
    class Server(twisted_ebrpc.EBRPC):
        def ebrpc_ping(self, *args):
            print 'listener got: ping(%s)' % repr(args)
            assert args == (1002,)
            return args
    r = Server()
    r = replication.EBRPC_ListenerAdaptor(r)
    reactor.connectTCP('127.0.0.1', 9000, r)


    ## client
    from BTL.twisted_ebrpc import AsyncServerProxy
    df = AsyncServerProxy("http://127.0.0.1:7080").ping(1002)
    def done(r):
        print 'client got:', r
        assert r == [1002]
        reactor.callLater(0.5, reactor.stop)
    df.addCallback(done)
    df.addErrback(done)


    reactor.run()
Esempio n. 4
0
        injectLogger(log_file="your.log", use_syslog=False, verbose=True)
        logger = logging.getLogger("myapp")
        logger.warning("You are awesome")

        print 'stdout!'
        print >> sys.stderr, 'stderr!'
        from twisted.internet import reactor
        from twisted.python import failure

        def foo():
            reactor.stop()
            zuul = dana

        reactor.callLater(0, foo)

    def test_injectLogger2():
        injectLogger(log_file="your.log", verbose=False, capture_output=True)
        print "hello world"

        def foo():
            reactor.stop()
            zuul = dana

        reactor.callLater(0, foo)

    #test_injectLogger()
    test_injectLogger2()

    #reactor.callLater(0, test_rate_limited_logger)
    reactor.run()