コード例 #1
0
    def open_connection(self, host=None, port=None, *,
                        limit=None, **kwds):
        """A wrapper for create_connection() returning a (reader, writer) pair.

        The reader returned is a StreamReader instance; the writer is a
        StreamWriter instance.

        The arguments are all the usual arguments to create_connection()
        except protocol_factory; most common are positional host and port,
        with various optional keyword arguments following.

        Additional optional keyword arguments are loop (to set the event loop
        instance to use) and limit (to set the buffer limit passed to the
        StreamReader).

        (If you want to customize the StreamReader and/or
        StreamReaderProtocol classes, just copy the code -- there's
        really nothing special here except some convenience.)
        """
        if not limit:
            limit = asyncio.streams._DEFAULT_LIMIT  # type: ignore
        reader = asyncio.streams.StreamReader(limit=limit, loop=self.loop)
        protocol = asyncio.streams.StreamReaderProtocol(reader, loop=self.loop)
        sock = self._open_mock_socket(host, port)
        transport = _SelectorSocketTransport(self.loop, sock, protocol)
        writer = asyncio.streams.StreamWriter(transport, protocol, reader, self.loop)
        return reader, writer   # type: ignore
コード例 #2
0
 def socket_transport(self, waiter=None):
     transport = _SelectorSocketTransport(self.loop,
                                          self.sock,
                                          self.protocol,
                                          waiter=waiter)
     self.addCleanup(close_transport, transport)
     return transport
コード例 #3
0
 def _make_socket_transport(self,
                            sock,
                            protocol,
                            waiter=None,
                            *,
                            extra=None,
                            server=None):
     return selector_events._SelectorSocketTransport(
         self, sock, protocol, waiter, extra, server)
コード例 #4
0
    async def add_client(self, socket):
        if not self.is_bound.done():
            raise AssertionError("Server not running")

        limit = asyncio.streams._DEFAULT_LIMIT
        reader = asyncio.streams.StreamReader(limit=limit, loop=self.loop)
        protocol = asyncio.streams.StreamReaderProtocol(reader, loop=self.loop)
        transport = _SelectorSocketTransport(self.loop, socket, protocol)
        writer = asyncio.streams.StreamWriter(transport, protocol, reader, self.loop)
        await self.client_connected_cb(reader, writer)
コード例 #5
0
 def socket_transport(self, waiter=None):
     transport = _SelectorSocketTransport(self.loop, self.sock,
                                          self.protocol, waiter=waiter)
     self.addCleanup(close_transport, transport)
     return transport
コード例 #6
0
ファイル: _events.py プロジェクト: bottompawn/aiouv
 def _make_socket_transport(self, sock, protocol, waiter=None, *, extra=None, server=None):
     return selector_events._SelectorSocketTransport(self, sock, protocol, waiter, extra, server)