diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-06-13 11:25:21 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-06-13 11:25:21 +0000 |
| commit | 3dfbec0f9ff13c660252d20dce17c88041280019 (patch) | |
| tree | f8197ebb95b99bb861e81236334d268e45d571a7 /src/DHTNodeLookupTask.cc | |
| parent | 532fc3724d5ece7a7a02cbe3b8db24d85da69626 (diff) | |
2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Rewritten DHTMessageCallback using Visitor pattern. Eliminated
dynamic_pointer_cast.
* src/DHTMessageCallbackImpl.cc: Removed
* src/DHTMessageReceiver.cc
* src/DHTAbstractNodeLookupTask.h
* src/DHTAnnouncePeerReplyMessage.h
* src/DHTReplaceNodeTask.h
* src/DHTFindNodeReplyMessage.cc
* src/DHTGetPeersReplyMessage.h
* src/DHTPeerLookupTask.h
* src/DHTMessageCallbackImpl.h: Removed
* src/DHTMessageFactory.h
* src/DHTNodeLookupTaskCallback.h
* src/DHTMessageTracker.h
* src/DHTMessageCallbackListener.h: Removed
* src/DHTGetPeersReplyMessage.cc
* src/DHTMessageCallback.h
* src/DHTAnnouncePeerReplyMessage.cc
* src/DHTNodeLookupTask.h
* src/DHTReplaceNodeTask.cc
* src/DHTPeerLookupTaskCallback.cc
* src/DHTMessageTracker.cc
* src/DHTPingReplyMessage.cc
* src/DHTPingTask.cc
* src/DHTMessageFactoryImpl.h
* src/Makefile.am
* src/DHTNodeLookupTask.cc
* src/DHTPeerLookupTaskCallback.h
* src/DHTPeerLookupTask.cc
* src/DHTMessageReceiver.h
* src/DHTMessageFactoryImpl.cc
* src/DHTResponseMessage.h
* src/DHTFindNodeReplyMessage.h
* src/DHTPingReplyMessageCallback.h
* src/Makefile.in
* src/DHTBucketRefreshTask.cc
* src/DHTNodeLookupTaskCallback.cc
* src/DHTPingTask.h
* src/DHTPingReplyMessage.h
* src/DHTAbstractNodeLookupTask.cc: Removed
* test/DHTMessageTrackerTest.cc
* test/DHTPingMessageTest.cc
* test/DHTGetPeersMessageTest.cc
* test/MockDHTMessage.h
* test/MockDHTMessageFactory.h
* test/DHTFindNodeMessageTest.cc
* test/MockDHTMessageCallback.h
* test/DHTAnnouncePeerMessageTest.cc
Diffstat (limited to 'src/DHTNodeLookupTask.cc')
| -rw-r--r-- | src/DHTNodeLookupTask.cc | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/DHTNodeLookupTask.cc b/src/DHTNodeLookupTask.cc index 82cbb481..46c56c35 100644 --- a/src/DHTNodeLookupTask.cc +++ b/src/DHTNodeLookupTask.cc @@ -39,24 +39,23 @@ #include "DHTNodeLookupEntry.h" #include "LogFactory.h" #include "util.h" +#include "DHTNodeLookupTaskCallback.h" +#include "DHTQueryMessage.h" namespace aria2 { DHTNodeLookupTask::DHTNodeLookupTask(const unsigned char* targetNodeID): - DHTAbstractNodeLookupTask(targetNodeID) + DHTAbstractNodeLookupTask<DHTFindNodeReplyMessage>(targetNodeID) {} void DHTNodeLookupTask::getNodesFromMessage (std::vector<SharedHandle<DHTNode> >& nodes, - const SharedHandle<DHTMessage>& message) + const DHTFindNodeReplyMessage* message) { - SharedHandle<DHTFindNodeReplyMessage> m - (dynamic_pointer_cast<DHTFindNodeReplyMessage>(message)); - if(!m.isNull()) { - const std::vector<SharedHandle<DHTNode> >& knodes = m->getClosestKNodes(); - nodes.insert(nodes.end(), knodes.begin(), knodes.end()); - } + const std::vector<SharedHandle<DHTNode> >& knodes = + message->getClosestKNodes(); + nodes.insert(nodes.end(), knodes.begin(), knodes.end()); } SharedHandle<DHTMessage> @@ -65,4 +64,10 @@ DHTNodeLookupTask::createMessage(const SharedHandle<DHTNode>& remoteNode) return getMessageFactory()->createFindNodeMessage(remoteNode, getTargetID()); } +SharedHandle<DHTMessageCallback> DHTNodeLookupTask::createCallback() +{ + return SharedHandle<DHTNodeLookupTaskCallback> + (new DHTNodeLookupTaskCallback(this)); +} + } // namespace aria2 |
