diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-02-08 14:17:55 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-02-08 14:17:55 +0000 |
| commit | 9bb57720cf66992813bc5060c291d950e5590500 (patch) | |
| tree | bdce241975f52d003281564364cbde09563bf1f3 /src/AdaptiveURISelector.cc | |
| parent | b8d177dd5d442b7bf9cc6731828602ca2e3f4ab1 (diff) | |
2009-02-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Rewritten AdaptiveURISelector::mayRetryWithIncreasedTimeout()
using RequestGroup::extractURIResult().
* src/AdaptiveURISelector.cc
* src/RequestGroup.cc
* src/RequestGroup.h
* test/RequestGroupTest.cc
Diffstat (limited to 'src/AdaptiveURISelector.cc')
| -rw-r--r-- | src/AdaptiveURISelector.cc | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/AdaptiveURISelector.cc b/src/AdaptiveURISelector.cc index cb20aad3..c4ff5b04 100644 --- a/src/AdaptiveURISelector.cc +++ b/src/AdaptiveURISelector.cc @@ -99,18 +99,17 @@ void AdaptiveURISelector::mayRetryWithIncreasedTimeout _requestGroup->setTimeout(_requestGroup->getTimeout()*2); // looking for retries - const std::deque<URIResult>& uriResults = _requestGroup->getURIResults(); - for (std::deque<URIResult>::const_iterator i = uriResults.begin(); - i != uriResults.end(); ++i) { - if ((*i).getResult() == DownloadResult::TIME_OUT) { - _logger->debug("AdaptiveURISelector: will retry server with increased" - " timeout (%d s): %s", - _requestGroup->getTimeout(), (*i).getURI().c_str()); - uris.push_back((*i).getURI()); - } + std::deque<URIResult> timeouts; + _requestGroup->extractURIResult(timeouts, DownloadResult::TIME_OUT); + std::transform(timeouts.begin(), timeouts.end(), std::back_inserter(uris), + std::mem_fun_ref(&URIResult::getURI)); + + for(std::deque<std::string>::const_iterator i = uris.begin(); i != uris.end(); + ++i) { + _logger->debug("AdaptiveURISelector: will retry server with increased" + " timeout (%d s): %s", + _requestGroup->getTimeout(), (*i).c_str()); } - std::sort(uris.begin(), uris.end()); - uris.erase(std::unique(uris.begin(), uris.end()), uris.end()); } std::string AdaptiveURISelector::selectOne(const std::deque<std::string>& uris) |
