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

Method onRequestBodyData

Libraries/Http/HttpAsyncServer.cpp:326–358  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

324
325 // Both with and without body we should stop listening to data events
326 SC_HTTP_ASSERT_RELEASE(
327 client.getReadableTransportStream().eventData.removeListener(EventDataListener{*this, client}));
328 if (client.requestCount > 0)
329 {
330 SC_HTTP_ASSERT_RELEASE(
331 client.getReadableTransportStream().eventEnd.removeListener(EventEndListener{*this, client}));
332 }
333 Result prepareBody =
334 client.request.prepareBodyStream(client.buffersPool,
335 {[&client]() -> Result
336 {
337 if (not client.request.isBodyComplete())
338 {
339 client.getReadableTransportStream().resumeReading();
340 }
341 return Result(true);
342 }},
343 false);
344 if (not prepareBody)
345 {
346 if (onError.isValid())
347 {
348 onError(prepareBody);
349 }
350 closeAsync(client);
351 return;
352 }
353
354 if (client.request.getBodyFramingKind() == HttpBodyFramingKind::Chunked or
355 client.request.getBodyFramingKind() == HttpBodyFramingKind::ContentLength)
356 {
357 const bool addedBodyData =
358 client.getReadableTransportStream().eventData.addListener(EventBodyDataListener{*this, client});
359 SC_HTTP_ASSERT_RELEASE(addedBodyData);
360 }
361

Callers 1

operator()Method · 0.80

Calls 5

onErrorFunction · 0.85
getReadableDataMethod · 0.80
processBodyDataMethod · 0.80
pauseMethod · 0.80
isValidMethod · 0.45

Tested by

no test coverage detected