home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_640 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  2.5 KB  |  65 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __all__ = [
  5.     'Client',
  6.     'Listener',
  7.     'Pipe']
  8. from Queue import Queue
  9. families = [
  10.     None]
  11.  
  12. class Listener(object):
  13.     
  14.     def __init__(self, address = None, family = None, backlog = 1):
  15.         self._backlog_queue = Queue(backlog)
  16.  
  17.     
  18.     def accept(self):
  19.         return Connection(*self._backlog_queue.get())
  20.  
  21.     
  22.     def close(self):
  23.         self._backlog_queue = None
  24.  
  25.     address = property((lambda self: self._backlog_queue))
  26.  
  27.  
  28. def Client(address):
  29.     _in = Queue()
  30.     _out = Queue()
  31.     address.put((_out, _in))
  32.     return Connection(_in, _out)
  33.  
  34.  
  35. def Pipe(duplex = True):
  36.     a = Queue()
  37.     b = Queue()
  38.     return (Connection(a, b), Connection(b, a))
  39.  
  40.  
  41. class Connection(object):
  42.     
  43.     def __init__(self, _in, _out):
  44.         self._out = _out
  45.         self._in = _in
  46.         self.send = self.send_bytes = _out.put
  47.         self.recv = self.recv_bytes = _in.get
  48.  
  49.     
  50.     def poll(self, timeout = 0):
  51.         if self._in.qsize() > 0:
  52.             return True
  53.         if timeout <= 0:
  54.             return False
  55.         self._in.not_empty.acquire()
  56.         self._in.not_empty.wait(timeout)
  57.         self._in.not_empty.release()
  58.         return self._in.qsize() > 0
  59.  
  60.     
  61.     def close(self):
  62.         pass
  63.  
  64.  
  65.