Use std::shuffle, instead of std::random_shuffle

pull/454/head
Tatsuhiro Tsujikawa 2015-06-11 22:40:56 +09:00
parent 8448b5062f
commit 37c2edd97a
12 changed files with 22 additions and 26 deletions

View File

@ -222,8 +222,8 @@ void AnnounceList::moveToCompletedAllowedTier() {
void AnnounceList::shuffle() {
for (const auto& tier: tiers_) {
auto& urls = tier->urls;
std::random_shuffle(std::begin(urls), std::end(urls),
*SimpleRandomizer::getInstance());
std::shuffle(std::begin(urls), std::end(urls),
*SimpleRandomizer::getInstance());
}
}

View File

@ -120,8 +120,8 @@ bool BtDependency::resolve()
context->getFileEntries();
for (auto &fe : fileEntries) {
auto &uri = fe->getRemainingUris();
std::random_shuffle(std::begin(uri), std::end(uri),
*SimpleRandomizer::getInstance());
std::shuffle(std::begin(uri), std::end(uri),
*SimpleRandomizer::getInstance());
}
const std::vector<std::shared_ptr<FileEntry> >& dependantFileEntries =
dependant_->getDownloadContext()->getFileEntries();

View File

@ -152,8 +152,7 @@ void BtLeecherStateChoke::plannedOptimisticUnchoke
auto i = std::partition(peerEntries.begin(), peerEntries.end(),
PeerFilter(true, true));
if(i != peerEntries.begin()) {
std::random_shuffle(peerEntries.begin(), i,
*SimpleRandomizer::getInstance());
std::shuffle(peerEntries.begin(), i, *SimpleRandomizer::getInstance());
(*peerEntries.begin()).enableOptUnchoking();
A2_LOG_INFO(fmt("POU: %s",
(*peerEntries.begin()).getPeer()->getIPAddress().c_str()));
@ -183,8 +182,7 @@ void BtLeecherStateChoke::regularUnchoke(std::vector<PeerEntry>& peerEntries)
}
}
if(fastOptUnchoker) {
std::random_shuffle(peerIter, peerEntries.end(),
*SimpleRandomizer::getInstance());
std::shuffle(peerIter, peerEntries.end(), *SimpleRandomizer::getInstance());
for (auto& p : peerEntries) {
if(p.getPeer()->peerInterested()) {
p.enableOptUnchoking();

View File

@ -141,8 +141,7 @@ void BtSeederStateChoke::unchoke
std::for_each(peers.begin(), peers.end(),
std::mem_fn(&PeerEntry::disableOptUnchoking));
if(r != peers.end()) {
std::random_shuffle(r, peers.end(),
*SimpleRandomizer::getInstance());
std::shuffle(r, peers.end(), *SimpleRandomizer::getInstance());
(*r).getPeer()->optUnchoking(true);
A2_LOG_INFO(fmt("POU: %s", (*r).getPeer()->getIPAddress().c_str()));
}

View File

@ -61,8 +61,7 @@ bool DHTConnectionImpl::bind
while(sgl.hasNext()) {
ports.push_back(sgl.next());
}
std::random_shuffle(ports.begin(), ports.end(),
*SimpleRandomizer::getInstance());
std::shuffle(ports.begin(), ports.end(), *SimpleRandomizer::getInstance());
for (const auto& p : ports) {
port = p;
if(bind(port, addr)) {

View File

@ -211,9 +211,8 @@ DefaultBtRequestFactory::createRequestMessagesOnEndGame(size_t max)
}
}
}
std::random_shuffle(std::begin(missingBlockIndexes),
std::end(missingBlockIndexes),
*SimpleRandomizer::getInstance());
std::shuffle(std::begin(missingBlockIndexes), std::end(missingBlockIndexes),
*SimpleRandomizer::getInstance());
for(auto bitr = std::begin(missingBlockIndexes),
eoi2 = std::end(missingBlockIndexes);
bitr != eoi2 && requests.size() < max; ++bitr) {

View File

@ -67,6 +67,7 @@
#include "Notifier.h"
#include "WrDiskCache.h"
#include "RequestGroup.h"
#include "SimpleRandomizer.h"
#ifdef ENABLE_BITTORRENT
# include "bittorrent_helper.h"
#endif // ENABLE_BITTORRENT
@ -201,7 +202,8 @@ void DefaultPieceStorage::getMissingPiece
indexes.push_back(i);
}
}
std::random_shuffle(indexes.begin(), indexes.end());
std::shuffle(indexes.begin(), indexes.end(),
*SimpleRandomizer::getInstance());
for(std::vector<size_t>::const_iterator i = indexes.begin(),
eoi = indexes.end(); i != eoi && misBlock < minMissingBlocks; ++i) {
std::shared_ptr<Piece> piece = checkOutPiece(*i, cuid);

View File

@ -98,8 +98,8 @@ public:
} // namespace
void MetalinkEntry::reorderResourcesByPriority() {
std::random_shuffle(std::begin(resources), std::end(resources),
*SimpleRandomizer::getInstance());
std::shuffle(std::begin(resources), std::end(resources),
*SimpleRandomizer::getInstance());
std::sort(std::begin(resources), std::end(resources),
PriorityHigher<std::unique_ptr<MetalinkResource>>{});
}

View File

@ -70,8 +70,7 @@ bool PeerListenCommand::bindPort(uint16_t& port, SegList<int>& sgl)
while(sgl.hasNext()) {
ports.push_back(sgl.next());
}
std::random_shuffle(ports.begin(), ports.end(),
*SimpleRandomizer::getInstance());
std::shuffle(ports.begin(), ports.end(), *SimpleRandomizer::getInstance());
const int ipv = (family_ == AF_INET) ? 4 : 6;
for(std::vector<uint16_t>::const_iterator i = ports.begin(),
eoi = ports.end(); i != eoi; ++i) {

View File

@ -51,8 +51,8 @@ PieceStatMan::PieceStatMan(size_t pieceNum, bool randomShuffle):
}
// we need some randomness in ordering.
if(randomShuffle) {
std::random_shuffle(order_.begin(), order_.end(),
*SimpleRandomizer::getInstance());
std::shuffle(order_.begin(), order_.end(),
*SimpleRandomizer::getInstance());
}
}

View File

@ -565,8 +565,8 @@ void RequestGroup::initPieceStorage()
downloadContext_->getFileEntries(),
downloadContext_->getPieceLength());
if (!result.empty()) {
std::random_shuffle(std::begin(result), std::end(result),
*SimpleRandomizer::getInstance());
std::shuffle(std::begin(result), std::end(result),
*SimpleRandomizer::getInstance());
auto priSelector = make_unique<PriorityPieceSelector>
(ps->popPieceSelector());
priSelector->setPriorityPiece(std::begin(result), std::end(result));

View File

@ -200,8 +200,8 @@ createBtRequestGroup(const std::string& metaInfoUri,
metaInfoUri.empty() ? "default" : metaInfoUri);
for (auto &fe : dctx->getFileEntries()) {
auto &uris = fe->getRemainingUris();
std::random_shuffle(std::begin(uris), std::end(uris),
*SimpleRandomizer::getInstance());
std::shuffle(std::begin(uris), std::end(uris),
*SimpleRandomizer::getInstance());
}
if(metaInfoUri.empty()) {
rg->setMetadataInfo(createMetadataInfoDataOnly());