summaryrefslogtreecommitdiff
path: root/src/DHTAbstractNodeLookupTask.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-02-28 12:30:11 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-02-28 12:30:11 +0000
commitc342bde9627b434effbc0cd10b817670d1da0923 (patch)
tree60d14bf448066b8dcd639adfa0db716d5a8258c8 /src/DHTAbstractNodeLookupTask.h
parent135f0a2a8c4ee04a5e96d84ba558245fabfc1f5c (diff)
2010-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use vector instead of deque for containers which is used for mostly read-only purpose.
Diffstat (limited to 'src/DHTAbstractNodeLookupTask.h')
-rw-r--r--src/DHTAbstractNodeLookupTask.h21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/DHTAbstractNodeLookupTask.h b/src/DHTAbstractNodeLookupTask.h
index 8b53f9bc..30fbf86c 100644
--- a/src/DHTAbstractNodeLookupTask.h
+++ b/src/DHTAbstractNodeLookupTask.h
@@ -36,14 +36,17 @@
#define _D_DHT_ABSTRACT_NODE_LOOKUP_TASK_H_
#include "DHTAbstractTask.h"
+
+#include <deque>
+#include <vector>
+
#include "DHTMessageCallbackListener.h"
#include "DHTConstants.h"
-#include <deque>
+#include "DHTNodeLookupEntry.h"
namespace aria2 {
class DHTNode;
-class DHTNodeLookupEntry;
class DHTMessage;
class DHTAbstractNodeLookupTask:public DHTAbstractTask, public DHTMessageCallbackListener {
@@ -54,8 +57,16 @@ protected:
size_t _inFlightMessage;
- void toEntries(std::deque<SharedHandle<DHTNodeLookupEntry> >& entries,
- const std::deque<SharedHandle<DHTNode> >& nodes) const;
+ template<typename Container>
+ void toEntries
+ (Container& entries, const std::vector<SharedHandle<DHTNode> >& nodes) const
+ {
+ for(std::vector<SharedHandle<DHTNode> >::const_iterator i = nodes.begin();
+ i != nodes.end(); ++i) {
+ SharedHandle<DHTNodeLookupEntry> e(new DHTNodeLookupEntry(*i));
+ entries.push_back(e);
+ }
+ }
void sendMessage();
@@ -73,7 +84,7 @@ public:
virtual void onTimeout(const SharedHandle<DHTNode>& node);
- virtual void getNodesFromMessage(std::deque<SharedHandle<DHTNode> >& nodes,
+ virtual void getNodesFromMessage(std::vector<SharedHandle<DHTNode> >& nodes,
const SharedHandle<DHTMessage>& message) = 0;
virtual void onReceivedInternal(const SharedHandle<DHTMessage>& message) {}