summaryrefslogtreecommitdiff
path: root/src/DHTAbstractNodeLookupTask.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-02-08 15:53:45 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-02-08 15:53:45 +0000
commit1b7c1982896dba1d38e1fe84ba9660996607f5f9 (patch)
treed12047cb37ded1e18d4d5b97844412538beb19ff /src/DHTAbstractNodeLookupTask.cc
parentd82e183d346375ac8a58a298a58728be615f947e (diff)
2008-02-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed "using namespace std;" from all sources. Appended std:: prefix to c++ standard classes. Included string.h where mem* function are used.
Diffstat (limited to 'src/DHTAbstractNodeLookupTask.cc')
-rw-r--r--src/DHTAbstractNodeLookupTask.cc34
1 files changed, 21 insertions, 13 deletions
diff --git a/src/DHTAbstractNodeLookupTask.cc b/src/DHTAbstractNodeLookupTask.cc
index 9bc8ddf8..598c68a4 100644
--- a/src/DHTAbstractNodeLookupTask.cc
+++ b/src/DHTAbstractNodeLookupTask.cc
@@ -42,8 +42,13 @@
#include "DHTMessageCallbackImpl.h"
#include "DHTBucket.h"
#include "LogFactory.h"
+#include "Logger.h"
#include "Util.h"
#include "DHTIDCloser.h"
+#include <cstring>
+#include <algorithm>
+
+namespace aria2 {
DHTAbstractNodeLookupTask::DHTAbstractNodeLookupTask(const unsigned char* targetID):
_inFlightMessage(0)
@@ -51,13 +56,13 @@ DHTAbstractNodeLookupTask::DHTAbstractNodeLookupTask(const unsigned char* target
memcpy(_targetID, targetID, DHT_ID_LENGTH);
}
-void DHTAbstractNodeLookupTask::onReceived(const DHTMessageHandle& message)
+void DHTAbstractNodeLookupTask::onReceived(const SharedHandle<DHTMessage>& message)
{
--_inFlightMessage;
onReceivedInternal(message);
- DHTNodeLookupEntries newEntries = toEntries(getNodesFromMessage(message));
+ std::deque<SharedHandle<DHTNodeLookupEntry> > newEntries = toEntries(getNodesFromMessage(message));
size_t count = 0;
- for(DHTNodeLookupEntries::const_iterator i = newEntries.begin();
+ for(std::deque<SharedHandle<DHTNodeLookupEntry> >::const_iterator i = newEntries.begin();
i != newEntries.end(); ++i) {
if(memcmp(_localNode->getID(), (*i)->_node->getID(), DHT_ID_LENGTH) != 0) {
_entries.push_front(*i);
@@ -65,8 +70,8 @@ void DHTAbstractNodeLookupTask::onReceived(const DHTMessageHandle& message)
}
}
_logger->debug("%u node lookup entries added.", count);
- stable_sort(_entries.begin(), _entries.end(), DHTIDCloser(_targetID));
- _entries.erase(unique(_entries.begin(), _entries.end()), _entries.end());
+ std::stable_sort(_entries.begin(), _entries.end(), DHTIDCloser(_targetID));
+ _entries.erase(std::unique(_entries.begin(), _entries.end()), _entries.end());
_logger->debug("%u node lookup entries are unique.", _entries.size());
if(_entries.size() > DHTBucket::K) {
_entries.erase(_entries.begin()+DHTBucket::K, _entries.end());
@@ -83,12 +88,12 @@ void DHTAbstractNodeLookupTask::onReceived(const DHTMessageHandle& message)
}
}
-void DHTAbstractNodeLookupTask::onTimeout(const DHTNodeHandle& node)
+void DHTAbstractNodeLookupTask::onTimeout(const SharedHandle<DHTNode>& node)
{
_logger->debug("node lookup message timeout for node ID=%s",
Util::toHex(node->getID(), DHT_ID_LENGTH).c_str());
--_inFlightMessage;
- for(DHTNodeLookupEntries::iterator i = _entries.begin(); i != _entries.end(); ++i) {
+ for(std::deque<SharedHandle<DHTNodeLookupEntry> >::iterator i = _entries.begin(); i != _entries.end(); ++i) {
if((*i)->_node == node) {
_entries.erase(i);
break;
@@ -108,11 +113,11 @@ void DHTAbstractNodeLookupTask::onTimeout(const DHTNodeHandle& node)
void DHTAbstractNodeLookupTask::sendMessage()
{
- for(DHTNodeLookupEntries::iterator i = _entries.begin(); i != _entries.end() && _inFlightMessage < ALPHA; ++i) {
+ for(std::deque<SharedHandle<DHTNodeLookupEntry> >::iterator i = _entries.begin(); i != _entries.end() && _inFlightMessage < ALPHA; ++i) {
if((*i)->_used == false) {
++_inFlightMessage;
(*i)->_used = true;
- DHTMessageHandle m = createMessage((*i)->_node);
+ SharedHandle<DHTMessage> m = createMessage((*i)->_node);
_dispatcher->addMessageToQueue(m, new DHTMessageCallbackImpl(this));
}
}
@@ -139,12 +144,15 @@ void DHTAbstractNodeLookupTask::startup()
}
}
-DHTNodeLookupEntries DHTAbstractNodeLookupTask::toEntries(const DHTNodes& nodes) const
+std::deque<SharedHandle<DHTNodeLookupEntry> >
+DHTAbstractNodeLookupTask::toEntries(const std::deque<SharedHandle<DHTNode> >& nodes) const
{
- DHTNodeLookupEntries entries;
- for(DHTNodes::const_iterator i = nodes.begin(); i != nodes.end(); ++i) {
- DHTNodeLookupEntryHandle e = new DHTNodeLookupEntry(*i);
+ std::deque<SharedHandle<DHTNodeLookupEntry> > entries;
+ for(std::deque<SharedHandle<DHTNode> >::const_iterator i = nodes.begin(); i != nodes.end(); ++i) {
+ SharedHandle<DHTNodeLookupEntry> e = new DHTNodeLookupEntry(*i);
entries.push_back(e);
}
return entries;
}
+
+} // namespace aria2