| 442 | } |
| 443 | |
| 444 | void HttpClient::finishResponse(HttpResponse* response) |
| 445 | { |
| 446 | auto request = response->getHttpRequest(); |
| 447 | auto syncState = request->getSyncState(); |
| 448 | |
| 449 | if (_cookie) |
| 450 | { |
| 451 | auto cookieRange = response->getResponseHeaders().equal_range("set-cookie"); |
| 452 | for (auto cookieIt = cookieRange.first; cookieIt != cookieRange.second; ++cookieIt) |
| 453 | _cookie->updateOrAddCookie(cookieIt->second, response->_requestUri); |
| 454 | } |
| 455 | |
| 456 | if (!syncState) |
| 457 | { |
| 458 | if (_dispatchOnWorkThread || std::this_thread::get_id() == Director::getInstance()->getAxmolThreadId()) |
| 459 | invokeResposneCallbackAndRelease(response); |
| 460 | else |
| 461 | _finishedResponseQueue.emplace_back(response); |
| 462 | } |
| 463 | else |
| 464 | { |
| 465 | syncState->set_value(response); |
| 466 | } |
| 467 | } |
| 468 | |
| 469 | void HttpClient::invokeResposneCallbackAndRelease(HttpResponse* response) |
| 470 | { |
nothing calls this directly
no test coverage detected