From 5f8e8e371e29d83d50b1688e1c468966218bdad5 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 12 May 2008 11:05:21 +0000 Subject: [PATCH] 2008-05-12 Tatsuhiro Tsujikawa 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 --- ChangeLog | 15 +++++++++++++++ src/CompactPeerListProcessor.cc | 8 ++++---- src/CompactPeerListProcessor.h | 4 ++-- src/DefaultBtAnnounce.cc | 3 ++- src/DefaultPeerListProcessor.cc | 8 ++++---- src/DefaultPeerListProcessor.h | 4 ++-- src/DelegatingPeerListProcessor.cc | 9 ++++----- src/DelegatingPeerListProcessor.h | 4 ++-- src/PeerListProcessor.h | 4 ++-- src/UTPexExtensionMessage.cc | 4 ++-- test/DefaultPeerListProcessorTest.cc | 6 ++++-- 11 files changed, 43 insertions(+), 26 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4b4bc810..3f0a30a3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2008-05-12 Tatsuhiro Tsujikawa + + 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 Changed method signature: diff --git a/src/CompactPeerListProcessor.cc b/src/CompactPeerListProcessor.cc index 6fbc2015..726a99cd 100644 --- a/src/CompactPeerListProcessor.cc +++ b/src/CompactPeerListProcessor.cc @@ -46,11 +46,12 @@ bool CompactPeerListProcessor::canHandle(const MetaEntry* peersEntry) const { return dynamic_cast(peersEntry) != 0; } -Peers CompactPeerListProcessor::extractPeer(const MetaEntry* peersEntry) { - Peers peers; +void CompactPeerListProcessor::extractPeer +(std::deque >& peers, const MetaEntry* peersEntry) +{ const Data* peersData = dynamic_cast(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 diff --git a/src/CompactPeerListProcessor.h b/src/CompactPeerListProcessor.h index faf92413..fd8a8691 100644 --- a/src/CompactPeerListProcessor.h +++ b/src/CompactPeerListProcessor.h @@ -44,8 +44,8 @@ public: virtual ~CompactPeerListProcessor(); - virtual std::deque > - extractPeer(const MetaEntry* peersEntry); + virtual void extractPeer + (std::deque >& peers, const MetaEntry* peersEntry); virtual bool canHandle(const MetaEntry* peersEntry) const; }; diff --git a/src/DefaultBtAnnounce.cc b/src/DefaultBtAnnounce.cc index 4ad88062..ce2a780b 100644 --- a/src/DefaultBtAnnounce.cc +++ b/src/DefaultBtAnnounce.cc @@ -251,7 +251,8 @@ DefaultBtAnnounce::processAnnounceResponse(const unsigned char* trackerResponse, !btRuntime->isHalt() && btRuntime->lessThanMinPeer()) { DelegatingPeerListProcessor proc; - Peers peers = proc.extractPeer(peersEntry); + std::deque > peers; + proc.extractPeer(peers, peersEntry); peerStorage->addPeer(peers); } if(!peersEntry) { diff --git a/src/DefaultPeerListProcessor.cc b/src/DefaultPeerListProcessor.cc index 7f46e975..5fc72163 100644 --- a/src/DefaultPeerListProcessor.cc +++ b/src/DefaultPeerListProcessor.cc @@ -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 >& peers, const MetaEntry* peersEntry) +{ const List* peersList = dynamic_cast(peersEntry); if(!peersList) { - return peers; + return; } const std::deque& metaList = peersList->getList(); for(std::deque::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 diff --git a/src/DefaultPeerListProcessor.h b/src/DefaultPeerListProcessor.h index 84a02bbd..b7e68d0a 100644 --- a/src/DefaultPeerListProcessor.h +++ b/src/DefaultPeerListProcessor.h @@ -45,8 +45,8 @@ public: virtual ~DefaultPeerListProcessor(); - virtual std::deque > - extractPeer(const MetaEntry* peersEntry); + virtual void extractPeer + (std::deque >& peers, const MetaEntry* peersEntry); virtual bool canHandle(const MetaEntry* peersEntry) const; }; diff --git a/src/DelegatingPeerListProcessor.cc b/src/DelegatingPeerListProcessor.cc index 3d85b820..e0ddfcb9 100644 --- a/src/DelegatingPeerListProcessor.cc +++ b/src/DelegatingPeerListProcessor.cc @@ -53,18 +53,17 @@ DelegatingPeerListProcessor::DelegatingPeerListProcessor() DelegatingPeerListProcessor::~DelegatingPeerListProcessor() {} -Peers DelegatingPeerListProcessor::extractPeer(const MetaEntry* peersEntry) { - Peers peers; +void DelegatingPeerListProcessor::extractPeer +(std::deque >& peers, const MetaEntry* peersEntry) +{ for(std::deque >::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 { diff --git a/src/DelegatingPeerListProcessor.h b/src/DelegatingPeerListProcessor.h index ed67a72e..16e83f8b 100644 --- a/src/DelegatingPeerListProcessor.h +++ b/src/DelegatingPeerListProcessor.h @@ -46,8 +46,8 @@ public: virtual ~DelegatingPeerListProcessor(); - virtual std::deque > - extractPeer(const MetaEntry* peersEntry); + virtual void extractPeer + (std::deque >& peers, const MetaEntry* peersEntry); virtual bool canHandle(const MetaEntry* peersEntry) const; }; diff --git a/src/PeerListProcessor.h b/src/PeerListProcessor.h index c4b66e4f..683006bd 100644 --- a/src/PeerListProcessor.h +++ b/src/PeerListProcessor.h @@ -48,8 +48,8 @@ class PeerListProcessor { public: virtual ~PeerListProcessor() {} - virtual std::deque > - extractPeer(const MetaEntry* peersEntry) = 0; + virtual void extractPeer + (std::deque >& peers, const MetaEntry* peersEntry) = 0; virtual bool canHandle(const MetaEntry* peersEntry) const = 0; }; diff --git a/src/UTPexExtensionMessage.cc b/src/UTPexExtensionMessage.cc index 154777f7..7dcf5365 100644 --- a/src/UTPexExtensionMessage.cc +++ b/src/UTPexExtensionMessage.cc @@ -139,11 +139,11 @@ UTPexExtensionMessage::create(const BtContextHandle& btContext, CompactPeerListProcessor proc; const Data* added = dynamic_cast(d->get("added")); if(added) { - msg->_freshPeers = proc.extractPeer(added); + proc.extractPeer(msg->_freshPeers, added); } const Data* dropped = dynamic_cast(d->get("dropped")); if(dropped) { - msg->_droppedPeers = proc.extractPeer(dropped); + proc.extractPeer(msg->_droppedPeers, dropped); } } return msg; diff --git a/test/DefaultPeerListProcessorTest.cc b/test/DefaultPeerListProcessorTest.cc index 46200920..10774989 100644 --- a/test/DefaultPeerListProcessorTest.cc +++ b/test/DefaultPeerListProcessorTest.cc @@ -34,7 +34,8 @@ void DefaultPeerListProcessorTest::testExtractPeer() { CPPUNIT_ASSERT(proc.canHandle(dic->get("peers"))); - std::deque > peers = proc.extractPeer(dic->get("peers")); + std::deque > peers; + proc.extractPeer(peers, dic->get("peers")); CPPUNIT_ASSERT_EQUAL((size_t)1, peers.size()); SharedHandle 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 > peers = proc.extractPeer(dic->get("peers")); + std::deque > peers; + proc.extractPeer(peers, dic->get("peers")); CPPUNIT_ASSERT_EQUAL((size_t)2, peers.size()); SharedHandle peer = *peers.begin(); CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"), peer->ipaddr);