예제 #1
0
 def addReader(self, reader):
     sup.addReader(self, reader)
     ##      gtk docs suggest this - but it's stupid
     ##         self.model.set(self.model.append(),
     ##                        0, str(reader),
     ##                        1, reader)
     self._maybeAddServer(reader, read=1)
예제 #2
0
 def __init__(self):
     self.xml = gtk.glade.XML(util.sibpath(__file__,"gladereactor.glade"))
     d = {}
     for m in reflect.prefixedMethods(self, "on_"):
         d[m.im_func.__name__] = m
     self.xml.signal_autoconnect(d)
     self.xml.get_widget('window1').connect('destroy',
                                            lambda w: self.stop())
     self.servers = self.xml.get_widget("servertree")
     sel = self.servers.get_selection()
     sel.set_mode(gtk.SELECTION_SINGLE)
     sel.connect("changed",
                 self.servers_selection_changed)
     self.xml.get_widget('suspend').set_sensitive(0)
     self.xml.get_widget('disconnect').set_sensitive(0)
     self.model = gtk.ListStore(str, object, gobject.TYPE_BOOLEAN,
                                gobject.TYPE_BOOLEAN)
     self.servers.set_model(self.model)
     self.servers.set_reorderable(1)
     self.servers.set_headers_clickable(1)
     for col in [
         gtk.TreeViewColumn('Server',
                            gtk.CellRendererText(),
                            text=0),
         gtk.TreeViewColumn('Reading',
                            gtk.CellRendererToggle(),
                            active=2),
         gtk.TreeViewColumn('Writing',
                            gtk.CellRendererToggle(),
                            active=3)]:
         self.servers.append_column(col)
         col.set_resizable(1)
     sup.__init__(self)
예제 #3
0
    def addReader(self, reader):
        sup.addReader(self, reader)
##      gtk docs suggest this - but it's stupid
##         self.model.set(self.model.append(),
##                        0, str(reader),
##                        1, reader)
        self._maybeAddServer(reader, read=1)
예제 #4
0
    def test_stopWhenRunning(self):
        """
        When C{reactor.stop} is scheduled with C{callWhenRunning},
        C{reactor.run} will return immediately, and without processing any
        timed events.
        """
        # This test *should* be part of a general reactor test suite that runs
        # tests cases against all reactor implementations.
        missed = []

        def calledTooLate():
            missed.append(True)
            reactor.crash()

        reactor = Gtk2Reactor(useGtk=False)
        reactor.callWhenRunning(reactor.stop)
        reactor.callLater(0, calledTooLate)
        reactor.run(installSignalHandlers=False)
        # XXX This explicit calls to clean up the waker should become obsolete
        # when bug #3063 is fixed. -radix, 2008-02-29. Fortunately it should
        # probably cause an error when bug #3063 is fixed, so it should be
        # removed in the same branch that fixes it.
        reactor.removeReader(reactor.waker)
        reactor.waker.connectionLost(None)
        if missed == [True]:
            self.fail("callWhenRunning reactor.stop did not take effect")
예제 #5
0
 def listenSSL(self,
               port,
               factory,
               contextFactory,
               backlog=50,
               interface=''):
     from _inspectro import LoggingFactory
     factory = LoggingFactory(factory)
     return sup.listenSSL(self, port, factory, contextFactory, backlog,
                          interface)
예제 #6
0
 def connectSSL(self,
                host,
                port,
                factory,
                contextFactory,
                timeout=30,
                bindAddress=None):
     from _inspectro import LoggingFactory
     factory = LoggingFactory(factory)
     return sup.connectSSL(self, host, port, factory, contextFactory,
                           timeout, bindAddress)
예제 #7
0
 def on_suspend_clicked(self, w):
     store, iter = self.servers.get_selection().get_selected()
     data = store[iter]
     sup.removeReader(self, data[1])
     sup.removeWriter(self, data[1])
     if data[COLUMN_DESCRIPTION].endswith('(suspended)'):
         if data[COLUMN_READING]:
             sup.addReader(self, data[COLUMN_TRANSPORT])
         if data[COLUMN_WRITING]:
             sup.addWriter(self, data[COLUMN_TRANSPORT])
         data[COLUMN_DESCRIPTION] = str(data[COLUMN_TRANSPORT])
         self.toggle_suspend(1)
     else:
         data[0] += ' (suspended)'
         self.toggle_suspend(0)
예제 #8
0
 def on_suspend_clicked(self, w):
     store, iter = self.servers.get_selection().get_selected()
     data = store[iter]
     sup.removeReader(self, data[1])
     sup.removeWriter(self, data[1])
     if data[COLUMN_DESCRIPTION].endswith('(suspended)'):
         if data[COLUMN_READING]:
             sup.addReader(self, data[COLUMN_TRANSPORT])
         if data[COLUMN_WRITING]:
             sup.addWriter(self, data[COLUMN_TRANSPORT])
         data[COLUMN_DESCRIPTION] = str(data[COLUMN_TRANSPORT])
         self.toggle_suspend(1)
     else:
         data[0] += ' (suspended)'
         self.toggle_suspend(0)
예제 #9
0
    def __init__(self):
        self.xml = gtk.glade.XML(util.sibpath(__file__, "gladereactor.glade"))
        d = {}
        for m in reflect.prefixedMethods(self, "on_"):
            d[m.im_func.__name__] = m
        self.xml.signal_autoconnect(d)
        self.xml.get_widget('window1').connect('destroy',
                                               lambda w: self.stop())
        self.servers = self.xml.get_widget("servertree")
        sel = self.servers.get_selection()
        sel.set_mode(gtk.SELECTION_SINGLE)
        sel.connect("changed", self.servers_selection_changed)
        ## argh coredump: self.servers_selection_changed(sel)
        self.xml.get_widget('suspend').set_sensitive(0)
        self.xml.get_widget('disconnect').set_sensitive(0)
        # setup model, connect it to my treeview
        self.model = gtk.ListStore(str, object, gobject.TYPE_BOOLEAN,
                                   gobject.TYPE_BOOLEAN)
        self.servers.set_model(self.model)
        self.servers.set_reorderable(1)
        self.servers.set_headers_clickable(1)
        # self.servers.set_headers_draggable(1)
        # add a column
        for col in [
                gtk.TreeViewColumn('Server', gtk.CellRendererText(), text=0),
                gtk.TreeViewColumn('Reading',
                                   gtk.CellRendererToggle(),
                                   active=2),
                gtk.TreeViewColumn('Writing',
                                   gtk.CellRendererToggle(),
                                   active=3)
        ]:

            self.servers.append_column(col)
            col.set_resizable(1)
        sup.__init__(self)
예제 #10
0
 def connectUNIX(self, address, factory, timeout=30):
     from _inspectro import LoggingFactory
     factory = LoggingFactory(factory)
     return sup.connectUNIX(self, address, factory, timeout)
예제 #11
0
 def listenUNIX(self, address, factory, backlog=50, mode=0666):
     from _inspectro import LoggingFactory
     factory = LoggingFactory(factory)
     return sup.listenUNIX(self, address, factory, backlog, mode)
예제 #12
0
 def connectUNIX(self, address, factory, timeout=30):
     from _inspectro import LoggingFactory
     factory = LoggingFactory(factory)
     return sup.connectUNIX(self, address, factory, timeout)
예제 #13
0
 def connectSSL(self, host, port, factory, contextFactory, timeout=30, bindAddress=None):
     from _inspectro import LoggingFactory
     factory = LoggingFactory(factory)
     return sup.connectSSL(self, host, port, factory, contextFactory, timeout, bindAddress)
예제 #14
0
 def listenSSL(self, port, factory, contextFactory, backlog=50, interface=''):
     from _inspectro import LoggingFactory
     factory = LoggingFactory(factory)
     return sup.listenSSL(self, port, factory, contextFactory, backlog, interface)
예제 #15
0
 def removeWriter(self, writer):
     sup.removeWriter(self, writer)
     self._maybeAddServer(writer, write=-1)
예제 #16
0
 def removeReader(self, reader):
     sup.removeReader(self, reader)
     self._maybeAddServer(reader, read=-1)
예제 #17
0
 def addWriter(self, writer):
     sup.addWriter(self, writer)
     self._maybeAddServer(writer, write=1)
예제 #18
0
 def addReader(self, reader):
     sup.addReader(self, reader)
     self._maybeAddServer(reader, read=1)
예제 #19
0
 def listenUNIX(self, address, factory, backlog=50, mode=0666):
     from _inspectro import LoggingFactory
     factory = LoggingFactory(factory)
     return sup.listenUNIX(self, address, factory, backlog, mode)
예제 #20
0
 def __init__(self, use_gtk):
     Gtk2Reactor.__init__(self, use_gtk)
     # ugh... why would somebody make these private?
     self.__iteration = self._Gtk2Reactor__iteration
     self.__pending = self._Gtk2Reactor__pending
     self.__run = self._Gtk2Reactor__run
예제 #21
0
 def addWriter(self, writer):
     sup.addWriter(self, writer)
     self._maybeAddServer(writer, write=1)
예제 #22
0
 def removeWriter(self, writer):
     sup.removeWriter(self, writer)
     self._maybeAddServer(writer, write=-1)
예제 #23
0
 def removeReader(self, reader):
     sup.removeReader(self, reader)
     self._maybeAddServer(reader, read=-1)