def _init_stream(self): '''Create streams and commander. Coroutine. ''' assert not self._connection self._connection = yield From( self._connection_pool.acquire(self._request.url_info.hostname, self._request.url_info.port)) self._control_stream = ControlStream(self._connection) self._commander = Commander(self._control_stream) if self._recorder_session: def control_data_callback(direction, data): assert direction in ('command', 'reply'), \ 'Expect read/write. Got {}'.format(repr(direction)) if direction == 'reply': self._recorder_session.response_control_data(data) else: self._recorder_session.request_control_data(data) self._control_stream.data_observer.add(control_data_callback)