From 07d270c87e6f9184aea4ca17eb26e466712e8db2 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sat, 22 Jun 2013 01:10:38 +0900 Subject: Require -std=c++11 and use std::shared_ptr instead of SharedHandle --- src/FileEntry.cc | 56 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) (limited to 'src/FileEntry.cc') diff --git a/src/FileEntry.cc b/src/FileEntry.cc index edf0a36e..e3be45eb 100644 --- a/src/FileEntry.cc +++ b/src/FileEntry.cc @@ -52,8 +52,8 @@ namespace aria2 { bool FileEntry::RequestFaster::operator() - (const SharedHandle& lhs, - const SharedHandle& rhs) const + (const std::shared_ptr& lhs, + const std::shared_ptr& rhs) const { if(!lhs->getPeerStat()) { return false; @@ -139,15 +139,15 @@ OutputIterator enumerateInFlightHosts } } // namespace -SharedHandle +std::shared_ptr FileEntry::getRequest -(const SharedHandle& selector, +(const std::shared_ptr& selector, bool uriReuse, const std::vector >& usedHosts, const std::string& referer, const std::string& method) { - SharedHandle req; + std::shared_ptr req; if(requestPool_.empty()) { std::vector inFlightHosts; enumerateInFlightHosts(inFlightRequests_.begin(), inFlightRequests_.end(), @@ -215,54 +215,54 @@ FileEntry::getRequest return req; } -SharedHandle -FileEntry::findFasterRequest(const SharedHandle& base) +std::shared_ptr +FileEntry::findFasterRequest(const std::shared_ptr& base) { const int startupIdleTime = 10; if(requestPool_.empty() || lastFasterReplace_.difference(global::wallclock()) < startupIdleTime) { - return SharedHandle(); + return std::shared_ptr(); } - const SharedHandle& fastest = + const std::shared_ptr& fastest = (*requestPool_.begin())->getPeerStat(); if(!fastest) { - return SharedHandle(); + return std::shared_ptr(); } - const SharedHandle& basestat = base->getPeerStat(); + const std::shared_ptr& basestat = base->getPeerStat(); // TODO hard coded value. See PREF_STARTUP_IDLE_TIME if(!basestat || (basestat->getDownloadStartTime(). difference(global::wallclock()) >= startupIdleTime && fastest->getAvgDownloadSpeed()*0.8 > basestat->calculateDownloadSpeed())){ // TODO we should consider that "fastest" is very slow. - SharedHandle fastestRequest = *requestPool_.begin(); + std::shared_ptr fastestRequest = *requestPool_.begin(); requestPool_.erase(requestPool_.begin()); inFlightRequests_.insert(fastestRequest); lastFasterReplace_ = global::wallclock(); return fastestRequest; } - return SharedHandle(); + return std::shared_ptr(); } -SharedHandle +std::shared_ptr FileEntry::findFasterRequest -(const SharedHandle& base, +(const std::shared_ptr& base, const std::vector >& usedHosts, - const SharedHandle& serverStatMan) + const std::shared_ptr& serverStatMan) { const int startupIdleTime = 10; const int SPEED_THRESHOLD = 20*1024; if(lastFasterReplace_.difference(global::wallclock()) < startupIdleTime) { - return SharedHandle(); + return std::shared_ptr(); } std::vector inFlightHosts; enumerateInFlightHosts(inFlightRequests_.begin(), inFlightRequests_.end(), std::back_inserter(inFlightHosts)); - const SharedHandle& basestat = base->getPeerStat(); + const std::shared_ptr& basestat = base->getPeerStat(); A2_LOG_DEBUG("Search faster server using ServerStat."); // Use first 10 good URIs to introduce some randomness. const size_t NUM_URI = 10; - std::vector, std::string> > fastCands; + std::vector, std::string> > fastCands; std::vector normCands; for(std::deque::const_iterator i = uris_.begin(), eoi = uris_.end(); i != eoi && fastCands.size() < NUM_URI; ++i) { @@ -284,7 +284,7 @@ FileEntry::findFasterRequest A2_LOG_DEBUG(fmt("%s is in usedHosts, not considered", (*i).c_str())); continue; } - SharedHandle ss = serverStatMan->find(host, protocol); + std::shared_ptr ss = serverStatMan->find(host, protocol); if(ss && ss->isOK()) { if((basestat && ss->getDownloadSpeed() > basestat->calculateDownloadSpeed()*1.5) || @@ -295,7 +295,7 @@ FileEntry::findFasterRequest } if(!fastCands.empty()) { std::sort(fastCands.begin(), fastCands.end(), ServerStatFaster()); - SharedHandle fastestRequest(new Request()); + std::shared_ptr fastestRequest(new Request()); const std::string& uri = fastCands.front().second; A2_LOG_DEBUG(fmt("Selected %s from fastCands", uri.c_str())); fastestRequest->setUri(uri); @@ -307,12 +307,12 @@ FileEntry::findFasterRequest return fastestRequest; } A2_LOG_DEBUG("No faster server found."); - return SharedHandle(); + return std::shared_ptr(); } -void FileEntry::storePool(const SharedHandle& request) +void FileEntry::storePool(const std::shared_ptr& request) { - const SharedHandle& peerStat = request->getPeerStat(); + const std::shared_ptr& peerStat = request->getPeerStat(); if(peerStat) { // We need to calculate average download speed here in order to // store Request in the right position in the pool. @@ -321,7 +321,7 @@ void FileEntry::storePool(const SharedHandle& request) requestPool_.insert(request); } -void FileEntry::poolRequest(const SharedHandle& request) +void FileEntry::poolRequest(const std::shared_ptr& request) { removeRequest(request); if(!request->removalRequested()) { @@ -329,7 +329,7 @@ void FileEntry::poolRequest(const SharedHandle& request) } } -bool FileEntry::removeRequest(const SharedHandle& request) +bool FileEntry::removeRequest(const std::shared_ptr& request) { return inFlightRequests_.erase(request) == 1; } @@ -497,7 +497,7 @@ bool FileEntry::removeUri(const std::string& uri) } } else { spentUris_.erase(itr); - SharedHandle req; + std::shared_ptr req; InFlightRequestSet::iterator riter = findRequestByUri(inFlightRequests_.begin(), inFlightRequests_.end(), uri); if(riter == inFlightRequests_.end()) { @@ -588,7 +588,7 @@ bool FileEntry::emptyRequestUri() const void writeFilePath (std::ostream& o, - const SharedHandle& entry, + const std::shared_ptr& entry, bool memory) { if(entry->getPath().empty()) { -- cgit