| 848 | } |
| 849 | |
| 850 | void HttpAsyncClient::onCompressedResponseBodyData(AsyncBufferView::ID bufferID) |
| 851 | { |
| 852 | SC_HTTP_ASSERT_RELEASE(responseDecoder != nullptr); |
| 853 | Result writeResult = responseDecoder->AsyncWritableStream::write( |
| 854 | bufferID, {[this](AsyncBufferView::ID writtenBufferID) { onCompressedResponseBodyWritten(writtenBufferID); }}); |
| 855 | if (not writeResult) |
| 856 | { |
| 857 | fail(writeResult); |
| 858 | } |
| 859 | } |
| 860 | |
| 861 | void HttpAsyncClient::onCompressedResponseBodyWritten(AsyncBufferView::ID) {} |
| 862 | |
| 863 | void HttpAsyncClient::onCompressedResponseBodyEnd() |
| 864 | { |
| 865 | SC_HTTP_ASSERT_RELEASE(responseDecoder != nullptr); |
| 866 | detachResponseDecompression(); |
| 867 | responseDecoder->AsyncWritableStream::end(); |
| 868 | } |
| 869 | |
| 870 | void HttpAsyncClient::onCompressedResponseError(Result result) { fail(result); } |
| 871 | |
| 872 | void HttpAsyncClient::onHeadersBufferWritten(AsyncBufferView::ID) |
| 873 | { |
| 874 | if (currentRequest == nullptr) |
| 875 | { |
| 876 | return; |
| 877 | } |
| 878 | if (currentRequest->getBodyType() == HttpAsyncClientRequest::BodyType::Stream) |
| 879 | { |
| 880 | connection->pipeline.source = currentRequest->getBodyStream(); |
| 881 | connection->pipeline.transforms[0] = currentRequest->getBodyTransform(); |
| 882 | connection->pipeline.transforms[1] = nullptr; |
| 883 | connection->pipeline.sinks[0] = ¤tRequest->getWritableStream(); |
| 884 | connection->pipeline.sinks[1] = nullptr; |
| 885 | |
| 886 | Result res = connection->pipeline.pipe(); |
| 887 | if (res) |
| 888 | { |
| 889 | res = connection->pipeline.start(); |
| 890 | } |
| 891 | if (not res) |
| 892 | { |
| 893 | fail(res); |
| 894 | } |
| 895 | } |
| 896 | else if (currentRequest->getBodyType() == HttpAsyncClientRequest::BodyType::Span) |
| 897 | { |
| 898 | Result writeResult = connection->getWritableTransportStream().write( |
| 899 | AsyncBufferView(currentRequest->getBodySpan()), |
| 900 | {[this](AsyncBufferView::ID) { connection->getWritableTransportStream().end(); }}); |
| 901 | if (not writeResult) |
nothing calls this directly
no test coverage detected