From e2ff45f32686b9844ccd84d53b1f081fa9896596 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Fri, 6 Jun 2014 00:04:37 +0900 Subject: [PATCH] AnnounceList, AnnounceTier: Code cleanup using C++11 features --- src/AnnounceList.cc | 78 ++++++++++++++++++++++----------------------- src/AnnounceList.h | 16 +++++----- src/AnnounceTier.cc | 4 +-- src/AnnounceTier.h | 6 ++-- 4 files changed, 52 insertions(+), 52 deletions(-) diff --git a/src/AnnounceList.cc b/src/AnnounceList.cc index 83affe811..2fb1d3515 100644 --- a/src/AnnounceList.cc +++ b/src/AnnounceList.cc @@ -45,13 +45,13 @@ namespace aria2 { AnnounceList::AnnounceList():currentTrackerInitialized_(false) {} AnnounceList::AnnounceList -(const std::vector >& announceList): +(const std::vector>& announceList): currentTrackerInitialized_(false) { reconfigure(announceList); } AnnounceList::AnnounceList -(const std::deque >& announceTiers): +(const std::deque>& announceTiers): tiers_(announceTiers), currentTrackerInitialized_(false) { resetIterator(); } @@ -59,31 +59,31 @@ AnnounceList::AnnounceList AnnounceList::~AnnounceList() {} void AnnounceList::reconfigure -(const std::vector >& announceList) +(const std::vector>& announceList) { for (const auto& vec: announceList) { if(vec.empty()) { continue; } - std::deque urls(vec.begin(), vec.end()); - std::shared_ptr tier(new AnnounceTier(urls)); - tiers_.push_back(tier); + + std::deque uris(std::begin(vec), std::end(vec)); + auto tier = + std::make_shared(std::move(uris)); + tiers_.push_back(std::move(tier)); } resetIterator(); } void AnnounceList::reconfigure(const std::string& url) { - std::deque urls; - urls.push_back(url); - std::shared_ptr tier(new AnnounceTier(urls)); - tiers_.push_back(tier); + std::deque urls{ url }; + tiers_.push_back(std::make_shared(std::move(urls))); resetIterator(); } void AnnounceList::resetIterator() { - currentTier_ = tiers_.begin(); - if(currentTier_ != tiers_.end() && (*currentTier_)->urls.size()) { - currentTracker_ = (*currentTier_)->urls.begin(); + currentTier_ = std::begin(tiers_); + if(currentTier_ != std::end(tiers_) && (*currentTier_)->urls.size()) { + currentTracker_ = std::begin((*currentTier_)->urls); currentTrackerInitialized_ = true; } else { currentTrackerInitialized_ = false; @@ -101,25 +101,25 @@ std::string AnnounceList::getAnnounce() const { void AnnounceList::announceSuccess() { if(currentTrackerInitialized_) { (*currentTier_)->nextEvent(); - std::string url = *currentTracker_; + auto url = *currentTracker_; (*currentTier_)->urls.erase(currentTracker_); - (*currentTier_)->urls.push_front(url); - currentTier_ = tiers_.begin(); - currentTracker_ = (*currentTier_)->urls.begin(); + (*currentTier_)->urls.push_front(std::move(url)); + currentTier_ = std::begin(tiers_); + currentTracker_ = std::begin((*currentTier_)->urls); } } void AnnounceList::announceFailure() { if(currentTrackerInitialized_) { ++currentTracker_; - if(currentTracker_ == (*currentTier_)->urls.end()) { + if(currentTracker_ == std::end((*currentTier_)->urls)) { // force next event (*currentTier_)->nextEventIfAfterStarted(); ++currentTier_; - if(currentTier_ == tiers_.end()) { + if(currentTier_ == std::end(tiers_)) { currentTrackerInitialized_ = false; } else { - currentTracker_ = (*currentTier_)->urls.begin(); + currentTracker_ = std::begin((*currentTier_)->urls); } } } @@ -190,46 +190,46 @@ public: } // namespace size_t AnnounceList::countStoppedAllowedTier() const { - return count_if(tiers_.begin(), tiers_.end(), FindStoppedAllowedTier()); + return count_if(std::begin(tiers_), std::end(tiers_), + FindStoppedAllowedTier()); } size_t AnnounceList::countCompletedAllowedTier() const { - return count_if(tiers_.begin(), tiers_.end(), FindCompletedAllowedTier()); + return count_if(std::begin(tiers_), std::end(tiers_), + FindCompletedAllowedTier()); } void AnnounceList::setCurrentTier -(const std::deque >::iterator& itr) { - if(itr != tiers_.end()) { - currentTier_ = itr; - currentTracker_ = (*currentTier_)->urls.begin(); +(std::deque>::iterator itr) { + if(itr != std::end(tiers_)) { + currentTier_ = std::move(itr); + currentTracker_ = std::begin((*currentTier_)->urls); } } void AnnounceList::moveToStoppedAllowedTier() { - auto itr = find_wrap_if(tiers_.begin(), tiers_.end(), currentTier_, + auto itr = find_wrap_if(std::begin(tiers_), std::end(tiers_), currentTier_, FindStoppedAllowedTier()); - setCurrentTier(itr); + setCurrentTier(std::move(itr)); } void AnnounceList::moveToCompletedAllowedTier() { - auto itr = - find_wrap_if(tiers_.begin(), tiers_.end(), - currentTier_, - FindCompletedAllowedTier()); - setCurrentTier(itr); + auto itr = find_wrap_if(std::begin(tiers_), std::end(tiers_), currentTier_, + FindCompletedAllowedTier()); + setCurrentTier(std::move(itr)); } void AnnounceList::shuffle() { for (const auto& tier: tiers_) { auto& urls = tier->urls; - std::random_shuffle(urls.begin(), urls.end(), + std::random_shuffle(std::begin(urls), std::end(urls), *SimpleRandomizer::getInstance()); } } bool AnnounceList::allTiersFailed() const { - return currentTier_ == tiers_.end(); + return currentTier_ == std::end(tiers_); } void AnnounceList::resetTier() @@ -241,18 +241,18 @@ bool AnnounceList::currentTierAcceptsStoppedEvent() const { if(currentTrackerInitialized_) { return FindStoppedAllowedTier()(*currentTier_); - } else { - return false; } + + return false; } bool AnnounceList::currentTierAcceptsCompletedEvent() const { if(currentTrackerInitialized_) { return FindCompletedAllowedTier()(*currentTier_); - } else { - return false; } + + return false; } size_t AnnounceList::countTier() const diff --git a/src/AnnounceList.h b/src/AnnounceList.h index 70310d771..c5d1da355 100644 --- a/src/AnnounceList.h +++ b/src/AnnounceList.h @@ -50,25 +50,25 @@ namespace aria2 { class AnnounceList { public: private: - std::deque > tiers_; - std::deque >::iterator currentTier_; + std::deque> tiers_; + std::deque>::iterator currentTier_; std::deque::iterator currentTracker_; bool currentTrackerInitialized_; void resetIterator(); void setCurrentTier - (const std::deque >::iterator& itr); + (std::deque>::iterator itr); public: AnnounceList(); - AnnounceList(const std::vector >& announceList); - AnnounceList(const std::deque >& tiers); + AnnounceList(const std::vector>& announceList); + AnnounceList(const std::deque>& tiers); ~AnnounceList(); // Don't allow copying - AnnounceList(const AnnounceList&); - AnnounceList& operator=(const AnnounceList&); + AnnounceList(const AnnounceList&) = delete; + AnnounceList& operator=(const AnnounceList&) = delete; - void reconfigure(const std::vector >& announceList); + void reconfigure(const std::vector>& announceList); void reconfigure(const std::string& url); size_t countTier() const; diff --git a/src/AnnounceTier.cc b/src/AnnounceTier.cc index ae0ec22a9..577994e4b 100644 --- a/src/AnnounceTier.cc +++ b/src/AnnounceTier.cc @@ -36,8 +36,8 @@ namespace aria2 { -AnnounceTier::AnnounceTier(const std::deque& urls) - : event(STARTED), urls(urls) +AnnounceTier::AnnounceTier(std::deque urls) + : event(STARTED), urls(std::move(urls)) {} AnnounceTier::~AnnounceTier() {} diff --git a/src/AnnounceTier.h b/src/AnnounceTier.h index 44fa1abf9..cced1c28b 100644 --- a/src/AnnounceTier.h +++ b/src/AnnounceTier.h @@ -57,13 +57,13 @@ public: AnnounceEvent event; std::deque urls; - AnnounceTier(const std::deque& urls); + AnnounceTier(std::deque urls); ~AnnounceTier(); // Don't allow copying - AnnounceTier(const AnnounceTier&); - AnnounceTier& operator=(const AnnounceTier&); + AnnounceTier(const AnnounceTier&) = delete; + AnnounceTier& operator=(const AnnounceTier&) = delete; void nextEvent();