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

Method processPendingEvents

Libraries/HttpClient/HttpClient.cpp:1508–1560  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1506}
1507
1508SC::Result SC::HttpClientOperation::processPendingEvents()
1509{
1510 HttpClientOperationEvent event;
1511 while (dequeueEvent(event))
1512 {
1513 switch (event.type)
1514 {
1515 case HttpClientOperationEvent::Type::ResponseHead:
1516 if (currentResponse != nullptr and currentListener != nullptr)
1517 {
1518 currentListener->onResponseHead(*currentResponse);
1519 }
1520 break;
1521 case HttpClientOperationEvent::Type::ResponseData: {
1522 if (event.bufferIndex >= responseBuffers.sizeInElements())
1523 {
1524 return Result::Error("HttpClient: invalid response buffer index");
1525 }
1526 const Span<char> writable = responseBuffers[event.bufferIndex].data;
1527 const Span<const char> readable = {writable.data(), event.size};
1528 if (currentListener != nullptr)
1529 {
1530 currentListener->onResponseBody(readable);
1531 }
1532 releaseResponseBuffer(event.bufferIndex);
1533 break;
1534 }
1535 case HttpClientOperationEvent::Type::ResponseComplete:
1536 requestInFlight = false;
1537 eventMutex.lock();
1538 eventCV.signal();
1539 eventMutex.unlock();
1540 if (currentListener != nullptr)
1541 {
1542 currentListener->onResponseComplete();
1543 }
1544 resetRequestBodyState();
1545 break;
1546 case HttpClientOperationEvent::Type::Error:
1547 requestInFlight = false;
1548 eventMutex.lock();
1549 eventCV.signal();
1550 eventMutex.unlock();
1551 if (currentListener != nullptr)
1552 {
1553 currentListener->onError(event.error);
1554 }
1555 resetRequestBodyState();
1556 break;
1557 }
1558 }
1559 return Result(true);
1560}
1561
1562SC::Result SC::HttpClientOperation::poll(uint32_t timeoutMilliseconds)
1563{

Callers

nothing calls this directly

Calls 10

ErrorEnum · 0.50
ResultClass · 0.50
onResponseHeadMethod · 0.45
dataMethod · 0.45
onResponseBodyMethod · 0.45
lockMethod · 0.45
signalMethod · 0.45
unlockMethod · 0.45
onResponseCompleteMethod · 0.45
onErrorMethod · 0.45

Tested by

no test coverage detected