int DownloadStart() { int res = 0; std::list<IDownload*> dls; std::list<int>::iterator it; for (it = downloads.begin(); it != downloads.end(); ++it) { IDownload* dl = GetIDownloadByID(searchres, *it); if (dl == NULL) { continue; } dls.push_back(dl); } if (fetchDepends) { addDepends(dls); } if (dls.empty()) { LOG_DEBUG("Nothing to do, did you forget to call DownloadAdd()?"); res = 1; return res; } if(!rapidDownload->download(dls)) res = 2; if (!httpDownload->download(dls,1)) res = 3; if (!download_engine(dls)) res = 4; IDownloader::freeResult(searchres); dls.clear(); return res; }
bool DownloadStart() { bool res = true; std::list<IDownload*> dls; std::list<int>::iterator it; for (it = downloads.begin(); it != downloads.end(); ++it) { IDownload* dl = GetIDownloadByID(searchres, *it); if (dl == NULL) { continue; } dls.push_back(dl); } if (fetchDepends) { addDepends(dls); } if (dls.empty()) { LOG_DEBUG("Nothing to do, did you forget to call DownloadAdd()?"); return res; } switch (typ) { case DL_RAPID: case DL_HTTP: if(!rapidDownload->download(dls)) res = false; if (!httpDownload->download(dls,1)) res = false; break; case DL_ENGINE: if (!download_engine(dls)) res = false; break; default: LOG_ERROR("%s():%d Invalid type specified: %d %d", __FUNCTION__, __LINE__, typ, downloads.size()); res = false; } IDownloader::freeResult(searchres); dls.clear(); return res; }