def __init__(self, io, mode=0, label=''): super(IOChannel, self).__init__(label=label) fno = get_fd(io) self.io = io uv = uv_server() self._poller = pyuv.Poll(uv.loop, fno) self._poller.start(uv_mode(mode), self._tick)
def __init__(self, addr=('0.0.0.0', 0)): # listeners are all couroutines waiting for a connections self.listeners = deque() self.uv = uv_server() self.sched = get_scheduler() self.task = getcurrent() self.listening = False self.handler = self.HANDLER_CLASS(self.uv.loop) self.handler.bind(addr)
def __init__(self, addr=('0.0.0.0', 0)): # listeners are all couroutines waiting for a connections self.listeners = deque() self.conns = {} self.uv = uv_server() self.task = getcurrent() self.listening = False self.handler = pyuv.UDP(self.uv.loop) self.handler.bind(addr)
def dial_pipe(addr): uv = uv_server() h = pyuv.Pipe(uv.loop) c = channel() def _on_connect(handle, error): c.send((handle, error)) h.connect(addr, _on_connect) h1, error = c.receive() return (PipeConn(h1), error)
def __init__(self, addr, raddr, client=None): self.uv = uv_server() if client is None: self.client = pyuv.UDP(self.uv.loop) self.client.bind(raddr) else: self.client = client self.reading = True self.queue = deque() self.cr = channel self._raddr = raddr self.addr = addr
def dial_tcp(addr): uv = uv_server() h = pyuv.TCP(uv.loop) c = channel() def _on_connect(handle, error): if error: c.send_exception(IOError, "uv error: %s" % error) else: c.send(handle) h.connect(addr, _on_connect) h1 = c.receive() return TCPConn(h1)
def __init__(self, addr=('0.0.0.0', 0), proto="tcp"): try: self.handler_class = UV_HANDLERS[proto] except KeyError: raise ValueError("type should be tcp, udp or unix") # listeners are all couroutines waiting for a connections self.listeners = deque() self.uv = uv_server() self.sched = get_scheduler() self.task = getcurrent() self.listening = False self.handler = self.handler_class(self.uv.loop) self.handler.bind(addr)
def __init__(self, addr, *args, **kwargs): sock = None fd = None if "sock" in kwargs: # we passed a socket in the kwargs, just use it sock = kwargs['sock'] fd = sock.fileno() elif isinstance(addr, int): # we are reusing a socket here fd = addr if "family" not in kwargs: family = socket.AF_INET else: family = kwargs['family'] sock = socket.fromfd(fd, family, socket.SOCK_STREAM) else: # new socket addr = parse_address(addr) if is_ipv6(addr[0]): family = socket.AF_INET6 else: family = socket.AF_INET sock = socket.socket(family, socket.SOCK_STREAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) nodelay = kwargs.get('nodelay', True) if family == socket.AF_INET and nodelay: sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) sock.bind(addr) sock.setblocking(0) fd = sock.fileno() self.sock = sock self.fd = fd self.addr = addr self.backlog = kwargs.get('backlog', 128) self.timeout = socket.getdefaulttimeout() self.uv = uv_server() self.poller = None self.listeners = deque() self.task = getcurrent() # start to listen self.sock.listen(self.backlog)
def __init__(self, client, laddr, addr): # set connection info self.client = client self.client.setblocking(0) self.timeout = socket.getdefaulttimeout() self.laddr = laddr self.addr = addr # utilies used to fetch & send ata self.cr = channel() # channel keeping readers waiters self.cw = channel() # channel keeping writers waiters self.queue = deque() # queue of readable data self.uv = uv_server() self.rpoller = None self.wpoller = None self._lock = threading.RLock() self.ncr = 0 # reader refcount self.ncw = 0 # writer refcount self.closing = False
def __init__(self): self.task = getcurrent() self.uv = uv_server() self.sched = get_scheduler() self.c = channel()
def dial_udp(laddr, raddr): uv = uv_server() h = pyuv.UDP(uv.loop) h.bind(laddr) return (UDPConn(laddr, raddr, h), None)