class Listener(object): def __init__(self, address=None, family=None, backlog=1): self._backlog_queue = Queue(backlog) def accept(self): return Connection(*self._backlog_queue.get()) def close(self): self._backlog_queue = None address = property(lambda self: self._backlog_queue) def __enter__(self): return self def __exit__(self, *exc_info): self.close()
def Pipe(duplex=True): a, b = Queue(), Queue() return Connection(a, b), Connection(b, a)
def Client(address): _in, _out = Queue(), Queue() address.put((_out, _in)) return Connection(_in, _out)
def __init__(self, address=None, family=None, backlog=1): self._backlog_queue = Queue(backlog)