Public Member Functions | |
multifetchworker (int no, multifetchrequest &request, const Url &url) | |
~multifetchworker () | |
void | nextjob () |
void | run () |
bool | checkChecksum () |
bool | recheckChecksum () |
void | disableCompetition () |
void | checkdns () |
void | adddnsfd (fd_set &rset, int &maxfd) |
void | dnsevent (fd_set &rset) |
Public Attributes | |
int | _workerno |
int | _state |
bool | _competing |
size_t | _blkno |
off_t | _blkstart |
size_t | _blksize |
bool | _noendrange |
double | _blkstarttime |
size_t | _blkreceived |
off_t | _received |
double | _avgspeed |
double | _maxspeed |
double | _sleepuntil |
Private Member Functions | |
void | stealjob () |
size_t | writefunction (void *ptr, size_t size) |
size_t | headerfunction (char *ptr, size_t size) |
Static Private Member Functions | |
static size_t | _writefunction (void *ptr, size_t size, size_t nmemb, void *stream) |
static size_t | _headerfunction (void *ptr, size_t size, size_t nmemb, void *stream) |
Private Attributes | |
multifetchrequest * | _request |
int | _pass |
string | _urlbuf |
off_t | _off |
size_t | _size |
Digest | _dig |
pid_t | _pid |
int | _dnspipe |
Friends | |
class | multifetchrequest |
Definition at line 48 of file MediaMultiCurl.cc.
zypp::media::multifetchworker::multifetchworker | ( | int | no, | |
multifetchrequest & | request, | |||
const Url & | url | |||
) |
Definition at line 298 of file MediaMultiCurl.cc.
References _avgspeed, zypp::media::multifetchrequest::_blklist, _blkno, _blkreceived, _blksize, _blkstart, _blkstarttime, _competing, zypp::media::multifetchrequest::_context, zypp::media::MediaCurl::_curl, zypp::media::MediaCurl::_curlError, _dnspipe, zypp::media::multifetchrequest::_filesize, _headerfunction(), zypp::media::multifetchrequest::_maxspeed, _maxspeed, _noendrange, _off, _pass, _pid, _received, _request, zypp::media::MediaCurl::_settings, _size, _sleepuntil, _state, zypp::media::MediaHandler::_url, _urlbuf, _workerno, _writefunction(), zypp::Url::asString(), zypp::media::CurlAuthData::auth_type_str2long(), zypp::media::TransferSettings::authType(), checkdns(), zypp::media::MediaCurl::clearQueryString(), DBG, zypp::media::MediaMultiCurl::fromEasyPool(), zypp::Url::getHost(), zypp::media::MediaBlockList::haveChecksum(), zypp::media::TransferSettings::password(), zypp::media::TransferSettings::setAuthType(), zypp::media::TransferSettings::setPassword(), zypp::media::MediaCurl::setupEasy(), zypp::media::TransferSettings::setUsername(), zypp::media::TransferSettings::username(), zypp::media::TransferSettings::userPassword(), WORKER_BROKEN, and WORKER_STARTING.
zypp::media::multifetchworker::~multifetchworker | ( | ) |
Definition at line 377 of file MediaMultiCurl.cc.
References zypp::media::multifetchrequest::_context, zypp::media::MediaCurl::_curl, _dnspipe, zypp::media::multifetchrequest::_multi, _pid, _request, _state, zypp::media::MediaHandler::_url, zypp::media::MediaCurl::disconnectFrom(), zypp::Url::getHost(), zypp::media::MediaMultiCurl::toEasyPool(), WORKER_DISCARD, WORKER_DONE, WORKER_FETCH, and WORKER_SLEEP.
void zypp::media::multifetchworker::nextjob | ( | ) |
Definition at line 695 of file MediaMultiCurl.cc.
References zypp::media::multifetchrequest::_blklist, _blkno, zypp::media::multifetchrequest::_blkno, zypp::media::multifetchrequest::_blkoff, _blksize, _blkstart, zypp::media::multifetchrequest::_filesize, _noendrange, _request, zypp::media::multifetchrequest::_stealing, BLKSIZE, zypp::media::MediaBlockList::getBlock(), zypp::media::MediaBlockList::haveChecksum(), zypp::media::MediaBlockList::numBlocks(), zypp::media::MediaBlock::off, run(), zypp::media::MediaBlock::size, and stealjob().
Referenced by dnsevent(), and zypp::media::multifetchrequest::run().
void zypp::media::multifetchworker::run | ( | ) |
Definition at line 744 of file MediaMultiCurl.cc.
References zypp::media::multifetchrequest::_activeworkers, zypp::media::multifetchrequest::_blklist, _blkno, _blkreceived, _blksize, _blkstart, _blkstarttime, zypp::media::MediaCurl::_curl, zypp::media::MediaCurl::_curlError, _dig, zypp::media::multifetchrequest::_havenewjob, zypp::media::multifetchrequest::_multi, _noendrange, _off, _request, _size, _state, zypp::media::MediaHandler::_url, _workerno, zypp::media::MediaBlockList::createDigest(), zypp::media::currentTime(), DBG, WORKER_BROKEN, WORKER_DONE, and WORKER_FETCH.
Referenced by nextjob(), zypp::media::multifetchrequest::run(), and stealjob().
bool zypp::media::multifetchworker::checkChecksum | ( | ) |
Definition at line 551 of file MediaMultiCurl.cc.
References zypp::media::multifetchrequest::_blklist, _blkno, _blksize, _dig, _request, and zypp::media::MediaBlockList::verifyDigest().
Referenced by zypp::media::multifetchrequest::run().
bool zypp::media::multifetchworker::recheckChecksum | ( | ) |
Definition at line 560 of file MediaMultiCurl.cc.
References zypp::media::multifetchrequest::_blklist, _blkno, _blksize, _blkstart, _dig, zypp::media::multifetchrequest::_fp, _request, zypp::media::MediaBlockList::createDigest(), zypp::Digest::update(), and zypp::media::MediaBlockList::verifyDigest().
Referenced by zypp::media::multifetchrequest::run().
void zypp::media::multifetchworker::disableCompetition | ( | ) |
Definition at line 676 of file MediaMultiCurl.cc.
References _blkstart, _pass, _request, _state, zypp::media::multifetchrequest::_workers, WORKER_DISCARD, and WORKER_FETCH.
Referenced by zypp::media::multifetchrequest::run().
void zypp::media::multifetchworker::checkdns | ( | ) |
Definition at line 425 of file MediaMultiCurl.cc.
References zypp::media::multifetchrequest::_connect_timeout, zypp::media::multifetchrequest::_context, zypp::media::MediaCurl::_curlError, _dnspipe, _pid, _request, zypp::media::MediaCurl::_settings, _state, zypp::media::MediaHandler::_url, DBG, zypp::media::env_isset(), zypp::Url::getHost(), zypp::Url::getScheme(), zypp::media::MediaMultiCurl::isDNSok(), zypp::media::TransferSettings::proxy(), WORKER_BROKEN, and WORKER_LOOKUP.
Referenced by multifetchworker().
void zypp::media::multifetchworker::adddnsfd | ( | fd_set & | rset, | |
int & | maxfd | |||
) |
void zypp::media::multifetchworker::dnsevent | ( | fd_set & | rset | ) |
Definition at line 513 of file MediaMultiCurl.cc.
References zypp::media::multifetchrequest::_activeworkers, zypp::media::multifetchrequest::_context, zypp::media::MediaCurl::_curlError, _dnspipe, _pid, _request, _state, zypp::media::MediaHandler::_url, _workerno, DBG, zypp::Url::getHost(), nextjob(), zypp::media::MediaMultiCurl::setDNSok(), WORKER_BROKEN, and WORKER_LOOKUP.
void zypp::media::multifetchworker::stealjob | ( | ) | [private] |
Definition at line 583 of file MediaMultiCurl.cc.
References zypp::media::multifetchrequest::_activeworkers, _avgspeed, _blkno, _blkreceived, _blksize, _blkstart, _blkstarttime, _competing, zypp::media::multifetchrequest::_finished, _pass, _request, _sleepuntil, zypp::media::multifetchrequest::_sleepworkers, _state, zypp::media::multifetchrequest::_stealing, _workerno, zypp::media::multifetchrequest::_workers, zypp::media::currentTime(), DBG, run(), WORKER_DISCARD, WORKER_DONE, and WORKER_SLEEP.
Referenced by nextjob(), and zypp::media::multifetchrequest::run().
size_t zypp::media::multifetchworker::writefunction | ( | void * | ptr, | |
size_t | size | |||
) | [private] |
Definition at line 179 of file MediaMultiCurl.cc.
References zypp::media::multifetchrequest::_blklist, _blkreceived, _blkstart, zypp::media::MediaCurl::_curl, _dig, zypp::media::multifetchrequest::_fetchedsize, zypp::media::multifetchrequest::_fp, zypp::media::multifetchrequest::_lastprogress, _off, _received, _request, _size, _state, zypp::media::currentTime(), zypp::Digest::update(), WORKER_BROKEN, and WORKER_DISCARD.
Referenced by _writefunction().
size_t zypp::media::multifetchworker::_writefunction | ( | void * | ptr, | |
size_t | size, | |||
size_t | nmemb, | |||
void * | stream | |||
) | [static, private] |
Definition at line 241 of file MediaMultiCurl.cc.
References writefunction().
Referenced by multifetchworker().
size_t zypp::media::multifetchworker::headerfunction | ( | char * | ptr, | |
size_t | size | |||
) | [private] |
Definition at line 248 of file MediaMultiCurl.cc.
References zypp::media::multifetchrequest::_blklist, zypp::media::MediaCurl::_curlError, zypp::media::multifetchrequest::_filesize, _request, _state, zypp::media::multifetchrequest::_totalsize, _workerno, DBG, WAR, and WORKER_BROKEN.
Referenced by _headerfunction().
size_t zypp::media::multifetchworker::_headerfunction | ( | void * | ptr, | |
size_t | size, | |||
size_t | nmemb, | |||
void * | stream | |||
) | [static, private] |
Definition at line 292 of file MediaMultiCurl.cc.
References headerfunction().
Referenced by multifetchworker().
friend class multifetchrequest [friend] |
Definition at line 49 of file MediaMultiCurl.cc.
Definition at line 64 of file MediaMultiCurl.cc.
Referenced by dnsevent(), headerfunction(), multifetchworker(), zypp::media::multifetchrequest::run(), run(), and stealjob().
Definition at line 66 of file MediaMultiCurl.cc.
Referenced by adddnsfd(), checkdns(), disableCompetition(), dnsevent(), headerfunction(), multifetchworker(), zypp::media::multifetchrequest::run(), run(), stealjob(), writefunction(), and ~multifetchworker().
Definition at line 67 of file MediaMultiCurl.cc.
Referenced by multifetchworker(), zypp::media::multifetchrequest::run(), and stealjob().
Definition at line 69 of file MediaMultiCurl.cc.
Referenced by checkChecksum(), multifetchworker(), nextjob(), recheckChecksum(), zypp::media::multifetchrequest::run(), run(), and stealjob().
Definition at line 70 of file MediaMultiCurl.cc.
Referenced by disableCompetition(), multifetchworker(), nextjob(), recheckChecksum(), zypp::media::multifetchrequest::run(), run(), stealjob(), and writefunction().
Definition at line 71 of file MediaMultiCurl.cc.
Referenced by checkChecksum(), multifetchworker(), nextjob(), recheckChecksum(), zypp::media::multifetchrequest::run(), run(), and stealjob().
Definition at line 72 of file MediaMultiCurl.cc.
Referenced by multifetchworker(), nextjob(), zypp::media::multifetchrequest::run(), and run().
Definition at line 74 of file MediaMultiCurl.cc.
Referenced by multifetchworker(), zypp::media::multifetchrequest::run(), run(), and stealjob().
Definition at line 75 of file MediaMultiCurl.cc.
Referenced by multifetchworker(), zypp::media::multifetchrequest::run(), run(), stealjob(), and writefunction().
Definition at line 76 of file MediaMultiCurl.cc.
Referenced by multifetchworker(), zypp::media::multifetchrequest::run(), and writefunction().
Definition at line 78 of file MediaMultiCurl.cc.
Referenced by multifetchworker(), zypp::media::multifetchrequest::run(), and stealjob().
Definition at line 79 of file MediaMultiCurl.cc.
Referenced by multifetchworker(), and zypp::media::multifetchrequest::run().
Definition at line 81 of file MediaMultiCurl.cc.
Referenced by multifetchworker(), zypp::media::multifetchrequest::run(), and stealjob().
Definition at line 92 of file MediaMultiCurl.cc.
Referenced by checkChecksum(), checkdns(), disableCompetition(), dnsevent(), headerfunction(), multifetchworker(), nextjob(), recheckChecksum(), run(), stealjob(), writefunction(), and ~multifetchworker().
int zypp::media::multifetchworker::_pass [private] |
Definition at line 93 of file MediaMultiCurl.cc.
Referenced by disableCompetition(), multifetchworker(), and stealjob().
string zypp::media::multifetchworker::_urlbuf [private] |
off_t zypp::media::multifetchworker::_off [private] |
Definition at line 95 of file MediaMultiCurl.cc.
Referenced by multifetchworker(), run(), and writefunction().
size_t zypp::media::multifetchworker::_size [private] |
Definition at line 96 of file MediaMultiCurl.cc.
Referenced by multifetchworker(), run(), and writefunction().
Digest zypp::media::multifetchworker::_dig [private] |
Definition at line 97 of file MediaMultiCurl.cc.
Referenced by checkChecksum(), recheckChecksum(), run(), and writefunction().
pid_t zypp::media::multifetchworker::_pid [private] |
Definition at line 99 of file MediaMultiCurl.cc.
Referenced by checkdns(), dnsevent(), multifetchworker(), and ~multifetchworker().
int zypp::media::multifetchworker::_dnspipe [private] |
Definition at line 100 of file MediaMultiCurl.cc.
Referenced by adddnsfd(), checkdns(), dnsevent(), multifetchworker(), and ~multifetchworker().