mirror of https://github.com/aria2/aria2
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature: PeerStorage::getActivePeers * src/DHTPeerAnnounceEntry.cc * src/DefaultPeerStorage.cc * src/DefaultPeerStorage.h * src/PeerStorage.h * test/DefaultPeerStorageTest.cc * test/MockPeerStorage.hpull/1/head
parent
33e916547a
commit
05f0646112
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
|||
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||
|
||||
Changed method signature:
|
||||
PeerStorage::getActivePeers
|
||||
* src/DHTPeerAnnounceEntry.cc
|
||||
* src/DefaultPeerStorage.cc
|
||||
* src/DefaultPeerStorage.h
|
||||
* src/PeerStorage.h
|
||||
* test/DefaultPeerStorageTest.cc
|
||||
* test/MockPeerStorage.h
|
||||
|
||||
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||
|
||||
Changed method signature:
|
||||
|
|
|
@ -112,8 +112,7 @@ void DHTPeerAnnounceEntry::getPeers(std::deque<SharedHandle<Peer> >& peers) cons
|
|||
if(!_btCtx.isNull()) {
|
||||
SharedHandle<PeerStorage> peerStorage = PEER_STORAGE(_btCtx);
|
||||
if(!peerStorage.isNull()) {
|
||||
const Peers& activePeers = peerStorage->getActivePeers();
|
||||
peers.insert(peers.end(), activePeers.begin(), activePeers.end());
|
||||
peerStorage->getActivePeers(peers);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -162,20 +162,22 @@ bool DefaultPeerStorage::isPeerAvailable() {
|
|||
|
||||
class CollectActivePeer {
|
||||
private:
|
||||
Peers _activePeers;
|
||||
std::deque<SharedHandle<Peer> >& _activePeers;
|
||||
public:
|
||||
void operator()(const PeerHandle& peer)
|
||||
CollectActivePeer(std::deque<SharedHandle<Peer> >& activePeers):
|
||||
_activePeers(activePeers) {}
|
||||
|
||||
void operator()(const SharedHandle<Peer>& peer)
|
||||
{
|
||||
if(peer->isActive()) {
|
||||
_activePeers.push_back(peer);
|
||||
}
|
||||
}
|
||||
|
||||
const Peers& getActivePeers() { return _activePeers; }
|
||||
};
|
||||
|
||||
Peers DefaultPeerStorage::getActivePeers() {
|
||||
return std::for_each(peers.begin(), peers.end(), CollectActivePeer()).getActivePeers();
|
||||
void DefaultPeerStorage::getActivePeers(std::deque<SharedHandle<Peer> >& activePeers)
|
||||
{
|
||||
std::for_each(peers.begin(), peers.end(), CollectActivePeer(activePeers));
|
||||
}
|
||||
|
||||
class CalculateStat {
|
||||
|
@ -267,10 +269,12 @@ bool DefaultPeerStorage::chokeRoundIntervalElapsed()
|
|||
|
||||
void DefaultPeerStorage::executeChoke()
|
||||
{
|
||||
std::deque<SharedHandle<Peer> > activePeers;
|
||||
getActivePeers(activePeers);
|
||||
if(PIECE_STORAGE(btContext)->downloadFinished()) {
|
||||
return _seederStateChoke->executeChoke(getActivePeers());
|
||||
return _seederStateChoke->executeChoke(activePeers);
|
||||
} else {
|
||||
return _leecherStateChoke->executeChoke(getActivePeers());
|
||||
return _leecherStateChoke->executeChoke(activePeers);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ public:
|
|||
|
||||
virtual bool isPeerAvailable();
|
||||
|
||||
virtual std::deque<SharedHandle<Peer> > getActivePeers();
|
||||
virtual void getActivePeers(std::deque<SharedHandle<Peer> >& peers);
|
||||
|
||||
virtual TransferStat calculateStat();
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ public:
|
|||
/**
|
||||
* Returns the list of peers which are currently connected from localhost.
|
||||
*/
|
||||
virtual std::deque<SharedHandle<Peer> > getActivePeers() = 0;
|
||||
virtual void getActivePeers(std::deque<SharedHandle<Peer> >& peers) = 0;
|
||||
|
||||
/**
|
||||
* Calculates current download/upload statistics.
|
||||
|
|
|
@ -174,20 +174,31 @@ void DefaultPeerStorageTest::testIsPeerAvailable() {
|
|||
void DefaultPeerStorageTest::testActivatePeer() {
|
||||
DefaultPeerStorage ps(btContext, option);
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)0, ps.getActivePeers().size());
|
||||
{
|
||||
std::deque<SharedHandle<Peer> > peers;
|
||||
ps.getActivePeers(peers);
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)0, peers.size());
|
||||
}
|
||||
|
||||
SharedHandle<Peer> peer1(new Peer("192.168.0.1", 6889));
|
||||
|
||||
ps.addPeer(peer1);
|
||||
|
||||
std::deque<SharedHandle<Peer> > activePeer = ps.getActivePeers();
|
||||
{
|
||||
std::deque<SharedHandle<Peer> > activePeers;
|
||||
ps.getActivePeers(activePeers);
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)0, ps.getActivePeers().size());
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)0, activePeers.size());
|
||||
}
|
||||
{
|
||||
peer1->allocateSessionResource(btContext->getPieceLength(),
|
||||
btContext->getTotalLength());
|
||||
|
||||
peer1->allocateSessionResource(btContext->getPieceLength(),
|
||||
btContext->getTotalLength());
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)1, ps.getActivePeers().size());
|
||||
std::deque<SharedHandle<Peer> > activePeers;
|
||||
ps.getActivePeers(activePeers);
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)1, activePeers.size());
|
||||
}
|
||||
}
|
||||
|
||||
void DefaultPeerStorageTest::testCalculateStat() {
|
||||
|
|
|
@ -42,8 +42,8 @@ public:
|
|||
this->activePeers = activePeers;
|
||||
}
|
||||
|
||||
virtual std::deque<SharedHandle<Peer> > getActivePeers() {
|
||||
return activePeers;
|
||||
virtual void getActivePeers(std::deque<SharedHandle<Peer> >& peers) {
|
||||
peers.insert(peers.end(), activePeers.begin(), activePeers.end());
|
||||
}
|
||||
|
||||
virtual TransferStat calculateStat() {
|
||||
|
|
Loading…
Reference in New Issue