void remove(OnlineFileRequest* request) { allRequests.erase(request); if (activeRequests.erase(request)) { activatePendingRequest(); } else { pendingRequests.remove(request); } }
void activateRequest(OnlineFileRequest* request) { activeRequests.insert(request); request->request = httpFileSource.request(request->resource, [=] (Response response) { activeRequests.erase(request); activatePendingRequest(); request->request.reset(); request->completed(response); }); }
void remove(OnlineFileRequest* request) { allRequests.erase(request); if (activeRequests.erase(request)) { activatePendingRequest(); } else { auto it = pendingRequestsMap.find(request); if (it != pendingRequestsMap.end()) { pendingRequestsList.erase(it->second); pendingRequestsMap.erase(it); } } }
void activateRequest(OnlineFileRequest* request) { auto callback = [=](Response response) { activeRequests.erase(request); request->request.reset(); request->completed(response); activatePendingRequest(); }; activeRequests.insert(request); if (online) { request->request = httpFileSource.request(request->resource, callback); } else { Response response; response.error = std::make_unique<Response::Error>(Response::Error::Reason::Connection, "Online connectivity is disabled."); callback(response); } }