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