|
libzypp
9.1.2
|
#include <MediaMultiCurl.h>

Public Member Functions | |
| MediaMultiCurl (const Url &url_r, const Pathname &attach_point_hint_r) | |
| ~MediaMultiCurl () | |
| virtual void | doGetFileCopy (const Pathname &srcFilename, const Pathname &targetFilename, callback::SendReport< DownloadProgressReport > &_report, RequestOptions options=OPTION_NONE) const |
| void | multifetch (const Pathname &filename, FILE *fp, std::vector< Url > *urllist, callback::SendReport< DownloadProgressReport > *report=0, MediaBlockList *blklist=0, off_t filesize=off_t(-1)) const |
Protected Member Functions | |
| bool | isDNSok (const std::string &host) const |
| void | setDNSok (const std::string &host) const |
| CURL * | fromEasyPool (const std::string &host) const |
| void | toEasyPool (const std::string &host, CURL *easy) const |
| virtual void | setupEasy () |
| initializes the curl easy handle with the data from the url | |
| void | checkFileDigest (Url &url, FILE *fp, MediaBlockList *blklist) const |
Private Attributes | |
| curl_slist * | _customHeadersMetalink |
| CURLM * | _multi |
| std::set< std::string > | _dnsok |
| std::map< std::string, CURL * > | _easypool |
Friends | |
| class | multifetchrequest |
| class | multifetchworker |
Definition at line 40 of file MediaMultiCurl.h.
| zypp::media::MediaMultiCurl::MediaMultiCurl | ( | const Url & | url_r, |
| const Pathname & | attach_point_hint_r | ||
| ) |
Definition at line 1152 of file MediaMultiCurl.cc.
References _customHeadersMetalink, _multi, and MIL.
Definition at line 1160 of file MediaMultiCurl.cc.
References _customHeadersMetalink, _easypool, and _multi.
| void zypp::media::MediaMultiCurl::doGetFileCopy | ( | const Pathname & | srcFilename, |
| const Pathname & | targetFilename, | ||
| callback::SendReport< DownloadProgressReport > & | _report, | ||
| RequestOptions | options = OPTION_NONE |
||
| ) | const [virtual] |
| MediaException |
Reimplemented from zypp::media::MediaCurl.
Definition at line 1228 of file MediaMultiCurl.cc.
References zypp::media::MediaCurl::_curl, zypp::media::MediaCurl::_customHeaders, _customHeadersMetalink, zypp::media::MediaHandler::_url, zypp::filesystem::applyUmaskTo(), zypp::filesystem::assert_dir(), zypp::Url::asString(), DBG, zypp::media::MediaHandler::deltafile(), zypp::filesystem::df(), zypp::media::MediaCurl::doGetFileCopyFile(), ERR, zypp::media::MediaCurlException::errstr(), zypp::media::MetaLinkParser::getBlockList(), zypp::media::MediaCurl::getFileUrl(), zypp::Url::getScheme(), zypp::media::MetaLinkParser::getUrls(), zypp::filesystem::hardlinkCopy(), zypp::media::MediaBlockList::haveChecksum(), zypp::ZConfig::instance(), zypp::media::looks_like_metalink(), multifetch(), zypp::str::numstring(), zypp::media::MediaCurl::OPTION_NO_IFMODSINCE, zypp::media::MediaCurl::OPTION_NO_REPORT_START, zypp::media::MetaLinkParser::parse(), zypp::filesystem::rename(), zypp::ZConfig::repoCachePath(), zypp::media::MediaBlockList::reuseBlocks(), zypp::filesystem::unlink(), zypp::media::MediaHandler::url(), WAR, ZYPP_RETHROW, and ZYPP_THROW.
| void zypp::media::MediaMultiCurl::multifetch | ( | const Pathname & | filename, |
| FILE * | fp, | ||
| std::vector< Url > * | urllist, | ||
| callback::SendReport< DownloadProgressReport > * | report = 0, |
||
| MediaBlockList * | blklist = 0, |
||
| off_t | filesize = off_t(-1) |
||
| ) | const |
Definition at line 1418 of file MediaMultiCurl.cc.
References zypp::media::multifetchrequest::_connect_timeout, zypp::media::multifetchrequest::_maxspeed, zypp::media::multifetchrequest::_maxworkers, _multi, zypp::media::MediaCurl::_settings, zypp::media::multifetchrequest::_timeout, checkFileDigest(), zypp::media::MediaCurl::checkProtocol(), zypp::media::TransferSettings::connectTimeout(), zypp::media::MediaBlockList::getFilesize(), zypp::media::MediaCurl::getFileUrl(), zypp::media::MediaBlockList::haveBlocks(), zypp::media::MediaBlockList::haveFilesize(), zypp::media::TransferSettings::maxConcurrentConnections(), zypp::media::TransferSettings::maxDownloadSpeed(), MAXURLS, zypp::media::MediaBlockList::numBlocks(), zypp::media::multifetchrequest::run(), zypp::media::TransferSettings::timeout(), and ZYPP_THROW.
Referenced by doGetFileCopy().
| bool zypp::media::MediaMultiCurl::isDNSok | ( | const std::string & | host | ) | const [protected] |
Definition at line 1485 of file MediaMultiCurl.cc.
References _dnsok.
Referenced by zypp::media::multifetchworker::checkdns().
| void zypp::media::MediaMultiCurl::setDNSok | ( | const std::string & | host | ) | const [protected] |
Definition at line 1490 of file MediaMultiCurl.cc.
References _dnsok.
Referenced by zypp::media::multifetchworker::dnsevent().
| CURL * zypp::media::MediaMultiCurl::fromEasyPool | ( | const std::string & | host | ) | const [protected] |
Definition at line 1495 of file MediaMultiCurl.cc.
References _easypool.
Referenced by zypp::media::multifetchworker::multifetchworker().
| void zypp::media::MediaMultiCurl::toEasyPool | ( | const std::string & | host, |
| CURL * | easy | ||
| ) | const [protected] |
Definition at line 1504 of file MediaMultiCurl.cc.
References _easypool.
Referenced by zypp::media::multifetchworker::~multifetchworker().
| void zypp::media::MediaMultiCurl::setupEasy | ( | ) | [protected, virtual] |
initializes the curl easy handle with the data from the url
| MediaCurlSetOptException | if there is a problem |
Connect timeout
Speed limits
Reimplemented from zypp::media::MediaCurl.
Definition at line 1184 of file MediaMultiCurl.cc.
References zypp::media::MediaCurl::_customHeaders, and _customHeadersMetalink.
| void zypp::media::MediaMultiCurl::checkFileDigest | ( | Url & | url, |
| FILE * | fp, | ||
| MediaBlockList * | blklist | ||
| ) | const [protected] |
Definition at line 1469 of file MediaMultiCurl.cc.
References zypp::media::MediaBlockList::createFileDigest(), zypp::media::MediaBlockList::haveFileChecksum(), zypp::Digest::update(), zypp::media::MediaBlockList::verifyFileDigest(), and ZYPP_THROW.
Referenced by multifetch().
friend class multifetchrequest [friend] |
Definition at line 42 of file MediaMultiCurl.h.
friend class multifetchworker [friend] |
Definition at line 43 of file MediaMultiCurl.h.
curl_slist* zypp::media::MediaMultiCurl::_customHeadersMetalink [private] |
Definition at line 65 of file MediaMultiCurl.h.
Referenced by doGetFileCopy(), MediaMultiCurl(), setupEasy(), and ~MediaMultiCurl().
CURLM* zypp::media::MediaMultiCurl::_multi [mutable, private] |
Definition at line 66 of file MediaMultiCurl.h.
Referenced by MediaMultiCurl(), multifetch(), and ~MediaMultiCurl().
std::set<std::string> zypp::media::MediaMultiCurl::_dnsok [mutable, private] |
Definition at line 67 of file MediaMultiCurl.h.
Referenced by isDNSok(), and setDNSok().
std::map<std::string, CURL *> zypp::media::MediaMultiCurl::_easypool [mutable, private] |
Definition at line 68 of file MediaMultiCurl.h.
Referenced by fromEasyPool(), toEasyPool(), and ~MediaMultiCurl().
1.7.6.1