(self, request)
| 696 | return self._start(request) |
| 697 | |
| 698 | def _start(self, request): |
| 699 | self._req = request |
| 700 | keep_alive = self._keep_alive |
| 701 | if keep_alive is None: |
| 702 | keep_alive = request.keep_alive |
| 703 | self._keep_alive = keep_alive |
| 704 | |
| 705 | resp_impl = self._resp_impl = ResponseImpl( |
| 706 | request._writer, |
| 707 | self._status, |
| 708 | request.version, |
| 709 | not keep_alive, |
| 710 | self._reason) |
| 711 | |
| 712 | self._copy_cookies() |
| 713 | |
| 714 | if self._compression: |
| 715 | self._start_compression(request) |
| 716 | |
| 717 | if self._chunked: |
| 718 | if request.version != HttpVersion11: |
| 719 | raise RuntimeError("Using chunked encoding is forbidden " |
| 720 | "for HTTP/{0.major}.{0.minor}".format( |
| 721 | request.version)) |
| 722 | resp_impl.enable_chunked_encoding() |
| 723 | if self._chunk_size: |
| 724 | resp_impl.add_chunking_filter(self._chunk_size) |
| 725 | |
| 726 | headers = self.headers.items() |
| 727 | for key, val in headers: |
| 728 | resp_impl.add_header(key, val) |
| 729 | |
| 730 | resp_impl.transport.set_tcp_nodelay(self._tcp_nodelay) |
| 731 | resp_impl.transport.set_tcp_cork(self._tcp_cork) |
| 732 | resp_impl.send_headers() |
| 733 | return resp_impl |
| 734 | |
| 735 | def write(self, data): |
| 736 | assert isinstance(data, (bytes, bytearray, memoryview)), \ |
no test coverage detected