mirror of
https://github.com/aria2/aria2.git
synced 2025-02-13 02:21:05 +00:00
2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature: PeerListProcessor::extractPeer * src/CompactPeerListProcessor.cc * src/CompactPeerListProcessor.h * src/DefaultBtAnnounce.cc * src/DefaultPeerListProcessor.cc * src/DefaultPeerListProcessor.h * src/DelegatingPeerListProcessor.cc * src/DelegatingPeerListProcessor.h * src/PeerListProcessor.h * src/UTPexExtensionMessage.cc * test/DefaultPeerListProcessorTest.cc
This commit is contained in:
parent
ddd1206b42
commit
5f8e8e371e
15
ChangeLog
15
ChangeLog
@ -1,3 +1,18 @@
|
||||
2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||
|
||||
Changed method signature:
|
||||
PeerListProcessor::extractPeer
|
||||
* src/CompactPeerListProcessor.cc
|
||||
* src/CompactPeerListProcessor.h
|
||||
* src/DefaultBtAnnounce.cc
|
||||
* src/DefaultPeerListProcessor.cc
|
||||
* src/DefaultPeerListProcessor.h
|
||||
* src/DelegatingPeerListProcessor.cc
|
||||
* src/DelegatingPeerListProcessor.h
|
||||
* src/PeerListProcessor.h
|
||||
* src/UTPexExtensionMessage.cc
|
||||
* test/DefaultPeerListProcessorTest.cc
|
||||
|
||||
2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||
|
||||
Changed method signature:
|
||||
|
@ -46,11 +46,12 @@ bool CompactPeerListProcessor::canHandle(const MetaEntry* peersEntry) const {
|
||||
return dynamic_cast<const Data*>(peersEntry) != 0;
|
||||
}
|
||||
|
||||
Peers CompactPeerListProcessor::extractPeer(const MetaEntry* peersEntry) {
|
||||
Peers peers;
|
||||
void CompactPeerListProcessor::extractPeer
|
||||
(std::deque<SharedHandle<Peer> >& peers, const MetaEntry* peersEntry)
|
||||
{
|
||||
const Data* peersData = dynamic_cast<const Data*>(peersEntry);
|
||||
if(!peersData) {
|
||||
return peers;
|
||||
return;
|
||||
}
|
||||
if(peersData->getLen()%6 == 0) {
|
||||
for(size_t i = 0; i < peersData->getLen(); i += 6) {
|
||||
@ -62,7 +63,6 @@ Peers CompactPeerListProcessor::extractPeer(const MetaEntry* peersEntry) {
|
||||
peers.push_back(peer);
|
||||
}
|
||||
}
|
||||
return peers;
|
||||
}
|
||||
|
||||
} // namespace aria2
|
||||
|
@ -44,8 +44,8 @@ public:
|
||||
|
||||
virtual ~CompactPeerListProcessor();
|
||||
|
||||
virtual std::deque<SharedHandle<Peer> >
|
||||
extractPeer(const MetaEntry* peersEntry);
|
||||
virtual void extractPeer
|
||||
(std::deque<SharedHandle<Peer> >& peers, const MetaEntry* peersEntry);
|
||||
|
||||
virtual bool canHandle(const MetaEntry* peersEntry) const;
|
||||
};
|
||||
|
@ -251,7 +251,8 @@ DefaultBtAnnounce::processAnnounceResponse(const unsigned char* trackerResponse,
|
||||
!btRuntime->isHalt() &&
|
||||
btRuntime->lessThanMinPeer()) {
|
||||
DelegatingPeerListProcessor proc;
|
||||
Peers peers = proc.extractPeer(peersEntry);
|
||||
std::deque<SharedHandle<Peer> > peers;
|
||||
proc.extractPeer(peers, peersEntry);
|
||||
peerStorage->addPeer(peers);
|
||||
}
|
||||
if(!peersEntry) {
|
||||
|
@ -49,11 +49,12 @@ bool DefaultPeerListProcessor::canHandle(const MetaEntry* peersEntry) const {
|
||||
return peersList != 0;
|
||||
}
|
||||
|
||||
Peers DefaultPeerListProcessor::extractPeer(const MetaEntry* peersEntry) {
|
||||
Peers peers;
|
||||
void DefaultPeerListProcessor::extractPeer
|
||||
(std::deque<SharedHandle<Peer> >& peers, const MetaEntry* peersEntry)
|
||||
{
|
||||
const List* peersList = dynamic_cast<const List*>(peersEntry);
|
||||
if(!peersList) {
|
||||
return peers;
|
||||
return;
|
||||
}
|
||||
const std::deque<MetaEntry*>& metaList = peersList->getList();
|
||||
for(std::deque<MetaEntry*>::const_iterator itr = metaList.begin();
|
||||
@ -70,7 +71,6 @@ Peers DefaultPeerListProcessor::extractPeer(const MetaEntry* peersEntry) {
|
||||
PeerHandle peer(new Peer(ip->toString(), port->toInt()));
|
||||
peers.push_back(peer);
|
||||
}
|
||||
return peers;
|
||||
}
|
||||
|
||||
} // namespace aria2
|
||||
|
@ -45,8 +45,8 @@ public:
|
||||
|
||||
virtual ~DefaultPeerListProcessor();
|
||||
|
||||
virtual std::deque<SharedHandle<Peer> >
|
||||
extractPeer(const MetaEntry* peersEntry);
|
||||
virtual void extractPeer
|
||||
(std::deque<SharedHandle<Peer> >& peers, const MetaEntry* peersEntry);
|
||||
|
||||
virtual bool canHandle(const MetaEntry* peersEntry) const;
|
||||
};
|
||||
|
@ -53,18 +53,17 @@ DelegatingPeerListProcessor::DelegatingPeerListProcessor()
|
||||
|
||||
DelegatingPeerListProcessor::~DelegatingPeerListProcessor() {}
|
||||
|
||||
Peers DelegatingPeerListProcessor::extractPeer(const MetaEntry* peersEntry) {
|
||||
Peers peers;
|
||||
void DelegatingPeerListProcessor::extractPeer
|
||||
(std::deque<SharedHandle<Peer> >& peers, const MetaEntry* peersEntry)
|
||||
{
|
||||
for(std::deque<SharedHandle<PeerListProcessor> >::iterator itr = processors.begin();
|
||||
itr != processors.end(); itr++) {
|
||||
PeerListProcessorHandle processor = *itr;
|
||||
if(processor->canHandle(peersEntry)) {
|
||||
Peers tempPeers = processor->extractPeer(peersEntry);
|
||||
std::copy(tempPeers.begin(), tempPeers.end(), std::back_inserter(peers));
|
||||
processor->extractPeer(peers, peersEntry);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return peers;
|
||||
}
|
||||
|
||||
bool DelegatingPeerListProcessor::canHandle(const MetaEntry* peersEntry) const {
|
||||
|
@ -46,8 +46,8 @@ public:
|
||||
|
||||
virtual ~DelegatingPeerListProcessor();
|
||||
|
||||
virtual std::deque<SharedHandle<Peer> >
|
||||
extractPeer(const MetaEntry* peersEntry);
|
||||
virtual void extractPeer
|
||||
(std::deque<SharedHandle<Peer> >& peers, const MetaEntry* peersEntry);
|
||||
|
||||
virtual bool canHandle(const MetaEntry* peersEntry) const;
|
||||
};
|
||||
|
@ -48,8 +48,8 @@ class PeerListProcessor {
|
||||
public:
|
||||
virtual ~PeerListProcessor() {}
|
||||
|
||||
virtual std::deque<SharedHandle<Peer> >
|
||||
extractPeer(const MetaEntry* peersEntry) = 0;
|
||||
virtual void extractPeer
|
||||
(std::deque<SharedHandle<Peer> >& peers, const MetaEntry* peersEntry) = 0;
|
||||
|
||||
virtual bool canHandle(const MetaEntry* peersEntry) const = 0;
|
||||
};
|
||||
|
@ -139,11 +139,11 @@ UTPexExtensionMessage::create(const BtContextHandle& btContext,
|
||||
CompactPeerListProcessor proc;
|
||||
const Data* added = dynamic_cast<const Data*>(d->get("added"));
|
||||
if(added) {
|
||||
msg->_freshPeers = proc.extractPeer(added);
|
||||
proc.extractPeer(msg->_freshPeers, added);
|
||||
}
|
||||
const Data* dropped = dynamic_cast<const Data*>(d->get("dropped"));
|
||||
if(dropped) {
|
||||
msg->_droppedPeers = proc.extractPeer(dropped);
|
||||
proc.extractPeer(msg->_droppedPeers, dropped);
|
||||
}
|
||||
}
|
||||
return msg;
|
||||
|
@ -34,7 +34,8 @@ void DefaultPeerListProcessorTest::testExtractPeer() {
|
||||
|
||||
CPPUNIT_ASSERT(proc.canHandle(dic->get("peers")));
|
||||
|
||||
std::deque<SharedHandle<Peer> > peers = proc.extractPeer(dic->get("peers"));
|
||||
std::deque<SharedHandle<Peer> > peers;
|
||||
proc.extractPeer(peers, dic->get("peers"));
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)1, peers.size());
|
||||
SharedHandle<Peer> peer = *peers.begin();
|
||||
CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"), peer->ipaddr);
|
||||
@ -47,7 +48,8 @@ void DefaultPeerListProcessorTest::testExtract2Peers() {
|
||||
|
||||
Dictionary* dic = (Dictionary*)MetaFileUtil::bdecoding(peersString);
|
||||
|
||||
std::deque<SharedHandle<Peer> > peers = proc.extractPeer(dic->get("peers"));
|
||||
std::deque<SharedHandle<Peer> > peers;
|
||||
proc.extractPeer(peers, dic->get("peers"));
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)2, peers.size());
|
||||
SharedHandle<Peer> peer = *peers.begin();
|
||||
CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"), peer->ipaddr);
|
||||
|
Loading…
x
Reference in New Issue
Block a user