""" Handles the acc_ready event. Accept as long as possible on subject. For each successfull accept assign protocol and emit a new_con event holding the new connection. Author: Georg Hopp """ from Connection import Connection from ConnectEntryPoint import ConnectEntryPoint from Event.EventHandler import EventHandler from Transport import Transport class Connector(EventHandler): def __init__(self): super(Connector, self).__init__() self._event_methods = { ConnectEntryPoint.eventId('acc_ready') : self._accept } def _accept(self, event): try: protocol = event.subject.getProtocol() if event.subject.accept(): con = event.subject.pop() while con: new_con = Connection(con, protocol) self.issueEvent(new_con, 'new_con') con = event.subject.pop() except Transport.Error as error: self.issueEvent(event.subject, 'close') return True # vim: set ft=python et ts=8 sw=4 sts=4: