MCPcopy Create free account
hub / github.com/FreesmTeam/FreesmLauncher / downloadFinished

Method downloadFinished

launcher/net/NetRequest.cpp:249–306  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

247}
248
249void NetRequest::downloadFinished()
250{
251 // handle HTTP redirection first
252 if (handleRedirect()) {
253 qCDebug(logCat) << getUid().toString() << "Request redirected:" << m_url.toString();
254 return;
255 }
256
257 // if the download failed before this point ...
258 if (m_state == State::Succeeded) // pretend to succeed so we continue processing :)
259 {
260 qCDebug(logCat) << getUid().toString() << "Request failed but we are allowed to proceed:" << m_url.toString();
261 m_sink->abort();
262 emit succeeded();
263 emit finished();
264 return;
265 } else if (m_state == State::Failed) {
266 qCDebug(logCat) << getUid().toString() << "Request failed in previous step:" << m_url.toString();
267 m_sink->abort();
268 emit failed(m_reply->errorString());
269 emit finished();
270 return;
271 } else if (m_state == State::AbortedByUser) {
272 qCDebug(logCat) << getUid().toString() << "Request aborted in previous step:" << m_url.toString();
273 m_sink->abort();
274 emit aborted();
275 emit finished();
276 return;
277 }
278
279 // make sure we got all the remaining data, if any
280 auto data = m_reply->readAll();
281 if (data.size()) {
282 qCDebug(logCat) << getUid().toString() << "Writing extra" << data.size() << "bytes";
283 m_state = m_sink->write(data);
284 if (m_state != State::Succeeded) {
285 qCDebug(logCat) << getUid().toString() << "Request failed to write:" << m_url.toString();
286 m_sink->abort();
287 emit failed("failed to write in sink");
288 emit finished();
289 return;
290 }
291 }
292
293 // otherwise, finalize the whole graph
294 m_state = m_sink->finalize(*m_reply.get());
295 if (m_state != State::Succeeded) {
296 qCDebug(logCat) << getUid().toString() << "Request failed to finalize:" << m_url.toString();
297 m_sink->abort();
298 emit failed("failed to finalize the request");
299 emit finished();
300 return;
301 }
302
303 qCDebug(logCat) << getUid().toString() << "Request succeeded:" << m_url.toString();
304 emit succeeded();
305 emit finished();
306}

Callers

nothing calls this directly

Calls 7

errorStringMethod · 0.80
toStringMethod · 0.45
abortMethod · 0.45
sizeMethod · 0.45
writeMethod · 0.45
finalizeMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected