`BaseIOStream` constructor. :arg max_buffer_size: Maximum amount of incoming data to buffer; defaults to 100MB. :arg read_chunk_size: Amount of data to read at one time from the underlying transport; defaults to 64KB. :arg max_write_buffer_size: Amoun
(
self,
max_buffer_size: Optional[int] = None,
read_chunk_size: Optional[int] = None,
max_write_buffer_size: Optional[int] = None,
)
| 223 | """ |
| 224 | |
| 225 | def __init__( |
| 226 | self, |
| 227 | max_buffer_size: Optional[int] = None, |
| 228 | read_chunk_size: Optional[int] = None, |
| 229 | max_write_buffer_size: Optional[int] = None, |
| 230 | ) -> None: |
| 231 | """`BaseIOStream` constructor. |
| 232 | |
| 233 | :arg max_buffer_size: Maximum amount of incoming data to buffer; |
| 234 | defaults to 100MB. |
| 235 | :arg read_chunk_size: Amount of data to read at one time from the |
| 236 | underlying transport; defaults to 64KB. |
| 237 | :arg max_write_buffer_size: Amount of outgoing data to buffer; |
| 238 | defaults to unlimited. |
| 239 | |
| 240 | .. versionchanged:: 4.0 |
| 241 | Add the ``max_write_buffer_size`` parameter. Changed default |
| 242 | ``read_chunk_size`` to 64KB. |
| 243 | .. versionchanged:: 5.0 |
| 244 | The ``io_loop`` argument (deprecated since version 4.1) has been |
| 245 | removed. |
| 246 | """ |
| 247 | self.io_loop = ioloop.IOLoop.current() |
| 248 | self.max_buffer_size = max_buffer_size or 104857600 |
| 249 | # A chunk size that is too close to max_buffer_size can cause |
| 250 | # spurious failures. |
| 251 | self.read_chunk_size = min(read_chunk_size or 65536, self.max_buffer_size // 2) |
| 252 | self.max_write_buffer_size = max_write_buffer_size |
| 253 | self.error = None # type: Optional[BaseException] |
| 254 | self._read_buffer = bytearray() |
| 255 | self._read_buffer_size = 0 |
| 256 | self._user_read_buffer = False |
| 257 | self._after_user_read_buffer = None # type: Optional[bytearray] |
| 258 | self._write_buffer = _StreamBuffer() |
| 259 | self._total_write_index = 0 |
| 260 | self._total_write_done_index = 0 |
| 261 | self._read_delimiter = None # type: Optional[bytes] |
| 262 | self._read_regex = None # type: Optional[Pattern] |
| 263 | self._read_max_bytes = None # type: Optional[int] |
| 264 | self._read_bytes = None # type: Optional[int] |
| 265 | self._read_partial = False |
| 266 | self._read_until_close = False |
| 267 | self._read_future = None # type: Optional[Future] |
| 268 | self._write_futures = ( |
| 269 | collections.deque() |
| 270 | ) # type: Deque[Tuple[int, Future[None]]] |
| 271 | self._close_callback = None # type: Optional[Callable[[], None]] |
| 272 | self._connect_future = None # type: Optional[Future[IOStream]] |
| 273 | # _ssl_connect_future should be defined in SSLIOStream |
| 274 | # but it's here so we can clean it up in _signal_closed |
| 275 | # TODO: refactor that so subclasses can add additional futures |
| 276 | # to be cancelled. |
| 277 | self._ssl_connect_future = None # type: Optional[Future[SSLIOStream]] |
| 278 | self._connecting = False |
| 279 | self._state = None # type: Optional[int] |
| 280 | self._closed = False |
| 281 | |
| 282 | def fileno(self) -> Union[int, ioloop._Selectable]: |
nothing calls this directly
no test coverage detected