MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / detachWebSocketTransport

Method detachWebSocketTransport

Libraries/Http/HttpAsyncClient.cpp:185–214  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

183}
184
185Result HttpAsyncClient::detachWebSocketTransport(HttpWebSocketTransportView& transport)
186{
187 SC_TRY_MSG(connection != nullptr, "HttpAsyncClient::detachWebSocketTransport init not called");
188 SC_TRY_MSG(response.hasReceivedHeaders(), "HttpAsyncClient::detachWebSocketTransport response headers missing");
189 SC_TRY_MSG(response.getParser().statusCode == 101, "HttpAsyncClient::detachWebSocketTransport expected 101");
190
191 transport.readableStream = &connection->getReadableTransportStream();
192 transport.writableStream = &connection->getWritableTransportStream();
193 transport.buffersPool = &connection->buffersPool;
194
195 (void)connection->getReadableTransportStream()
196 .eventData.removeListener<HttpAsyncClient, &HttpAsyncClient::onResponseData>(*this);
197 (void)connection->getReadableTransportStream()
198 .eventData.removeListener<HttpAsyncClient, &HttpAsyncClient::onResponseBodyData>(*this);
199 (void)connection->getReadableTransportStream()
200 .eventError.removeListener<HttpAsyncClient, &HttpAsyncClient::onReadableError>(*this);
201 (void)connection->getWritableTransportStream()
202 .eventError.removeListener<HttpAsyncClient, &HttpAsyncClient::onWritableError>(*this);
203 (void)connection->getReadableTransportStream()
204 .eventEnd.removeListener<HttpAsyncClient, &HttpAsyncClient::onReadableEnd>(*this);
205 (void)connection->pipeline.eventError.removeListener<HttpAsyncClient, &HttpAsyncClient::onPipelineError>(*this);
206 (void)connection->pipeline.unpipe();
207
208 hasOpenConnection = false;
209 currentProtocol = {};
210 currentHost = {};
211 currentPort = 0;
212 webSocketUpgraded = true;
213 return Result(true);
214}
215
216Result HttpAsyncClient::prepareRequest(const RequestPreset& preset)
217{

Callers 1

onResponseMethod · 0.80

Calls 2

unpipeMethod · 0.80
ResultClass · 0.50

Tested by

no test coverage detected