bool CGUIDialogSongInfo::DownloadThumbnail(const std::string &thumbFile) { //! @todo Obtain the source... std::string source; CCurlFile http; http.Download(source, thumbFile); return true; }
bool CGUIDialogSongInfo::DownloadThumbnail(const CStdString &thumbFile) { // TODO: Obtain the source... CStdString source; CCurlFile http; http.Download(source, thumbFile); return true; }
void CDownloadQueue::Process() { CLog::Log(LOGNOTICE, "DownloadQueue ready."); CCurlFile http; bool bSuccess; while ( !m_bStop ) { while ( CDownloadQueue::Size() > 0 ) { CSingleLock lock(m_critical); // get the first item, but don't pop it from our queue // so that the download can be interrupted Command request = m_queue.front(); lock.Leave(); bool bFileRequest = request.content.length() > 0; DWORD dwSize = 0; if (bFileRequest) { CFile::Delete(request.content); bSuccess = http.Download(request.location, request.content, &dwSize); } else { bSuccess = http.Get(request.location, request.content); } // now re-grab the item as we may have cancelled our download // while we were working { CSingleLock lock2(m_critical); // open lock2 scope request = m_queue.front(); m_queue.pop(); // if the request has been cancelled our observer will be NULL if (NULL != request.observer) { try { if (bFileRequest) { request.observer->OnFileComplete(request.ticket, request.content, dwSize, bSuccess ? IDownloadQueueObserver::Succeeded : IDownloadQueueObserver::Failed ); } else { request.observer->OnContentComplete(request.ticket, request.content, bSuccess ? IDownloadQueueObserver::Succeeded : IDownloadQueueObserver::Failed ); } } catch (...) { CLog::Log(LOGERROR, "exception while updating download observer."); if (bFileRequest) { CFile::Delete(request.content); } } } } // close lock2 scope } Sleep(500); } CLog::Log(LOGNOTICE, "DownloadQueue terminated."); }