summaryrefslogtreecommitdiff
path: root/src/DHTAbstractNodeLookupTask.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/DHTAbstractNodeLookupTask.cc')
-rw-r--r--src/DHTAbstractNodeLookupTask.cc63
1 files changed, 34 insertions, 29 deletions
diff --git a/src/DHTAbstractNodeLookupTask.cc b/src/DHTAbstractNodeLookupTask.cc
index ace56915..5edb1719 100644
--- a/src/DHTAbstractNodeLookupTask.cc
+++ b/src/DHTAbstractNodeLookupTask.cc
@@ -51,13 +51,15 @@
namespace aria2 {
-DHTAbstractNodeLookupTask::DHTAbstractNodeLookupTask(const unsigned char* targetID):
+DHTAbstractNodeLookupTask::DHTAbstractNodeLookupTask
+(const unsigned char* targetID):
_inFlightMessage(0)
{
memcpy(_targetID, targetID, DHT_ID_LENGTH);
}
-void DHTAbstractNodeLookupTask::onReceived(const SharedHandle<DHTMessage>& message)
+void DHTAbstractNodeLookupTask::onReceived
+(const SharedHandle<DHTMessage>& message)
{
--_inFlightMessage;
onReceivedInternal(message);
@@ -69,23 +71,25 @@ void DHTAbstractNodeLookupTask::onReceived(const SharedHandle<DHTMessage>& messa
size_t count = 0;
for(std::vector<SharedHandle<DHTNodeLookupEntry> >::const_iterator i =
newEntries.begin(), eoi = newEntries.end(); i != eoi; ++i) {
- if(memcmp(_localNode->getID(), (*i)->_node->getID(), DHT_ID_LENGTH) != 0) {
+ if(memcmp(getLocalNode()->getID(), (*i)->_node->getID(),
+ DHT_ID_LENGTH) != 0) {
_entries.push_front(*i);
++count;
- if(_logger->debug()) {
- _logger->debug("Received nodes: id=%s, ip=%s",
- util::toHex((*i)->_node->getID(), DHT_ID_LENGTH).c_str(),
- (*i)->_node->getIPAddress().c_str());
+ if(getLogger()->debug()) {
+ getLogger()->debug("Received nodes: id=%s, ip=%s",
+ util::toHex((*i)->_node->getID(),
+ DHT_ID_LENGTH).c_str(),
+ (*i)->_node->getIPAddress().c_str());
}
}
}
- if(_logger->debug()) {
- _logger->debug("%u node lookup entries added.", count);
+ if(getLogger()->debug()) {
+ getLogger()->debug("%u node lookup entries added.", count);
}
std::stable_sort(_entries.begin(), _entries.end(), DHTIDCloser(_targetID));
_entries.erase(std::unique(_entries.begin(), _entries.end()), _entries.end());
- if(_logger->debug()) {
- _logger->debug("%u node lookup entries are unique.", _entries.size());
+ if(getLogger()->debug()) {
+ getLogger()->debug("%u node lookup entries are unique.", _entries.size());
}
if(_entries.size() > DHTBucket::K) {
_entries.erase(_entries.begin()+DHTBucket::K, _entries.end());
@@ -95,9 +99,9 @@ void DHTAbstractNodeLookupTask::onReceived(const SharedHandle<DHTMessage>& messa
void DHTAbstractNodeLookupTask::onTimeout(const SharedHandle<DHTNode>& node)
{
- if(_logger->debug()) {
- _logger->debug("node lookup message timeout for node ID=%s",
- util::toHex(node->getID(), DHT_ID_LENGTH).c_str());
+ if(getLogger()->debug()) {
+ getLogger()->debug("node lookup message timeout for node ID=%s",
+ util::toHex(node->getID(), DHT_ID_LENGTH).c_str());
}
--_inFlightMessage;
for(std::deque<SharedHandle<DHTNodeLookupEntry> >::iterator i =
@@ -116,18 +120,18 @@ void DHTAbstractNodeLookupTask::sendMessageAndCheckFinish()
sendMessage();
}
if(_inFlightMessage == 0) {
- if(_logger->debug()) {
- _logger->debug("Finished node_lookup for node ID %s",
- util::toHex(_targetID, DHT_ID_LENGTH).c_str());
+ if(getLogger()->debug()) {
+ getLogger()->debug("Finished node_lookup for node ID %s",
+ util::toHex(_targetID, DHT_ID_LENGTH).c_str());
}
onFinish();
updateBucket();
- _finished = true;
+ setFinished(true);
} else {
- if(_logger->debug()) {
- _logger->debug("%d in flight message for node ID %s",
- _inFlightMessage,
- util::toHex(_targetID, DHT_ID_LENGTH).c_str());
+ if(getLogger()->debug()) {
+ getLogger()->debug("%d in flight message for node ID %s",
+ _inFlightMessage,
+ util::toHex(_targetID, DHT_ID_LENGTH).c_str());
}
}
}
@@ -142,8 +146,9 @@ void DHTAbstractNodeLookupTask::sendMessage()
(*i)->_used = true;
SharedHandle<DHTMessage> m = createMessage((*i)->_node);
WeakHandle<DHTMessageCallbackListener> listener(this);
- SharedHandle<DHTMessageCallback> callback(new DHTMessageCallbackImpl(listener));
- _dispatcher->addMessageToQueue(m, callback);
+ SharedHandle<DHTMessageCallback> callback
+ (new DHTMessageCallbackImpl(listener));
+ getMessageDispatcher()->addMessageToQueue(m, callback);
}
}
}
@@ -156,20 +161,20 @@ void DHTAbstractNodeLookupTask::updateBucket()
void DHTAbstractNodeLookupTask::startup()
{
std::vector<SharedHandle<DHTNode> > nodes;
- _routingTable->getClosestKNodes(nodes, _targetID);
+ getRoutingTable()->getClosestKNodes(nodes, _targetID);
_entries.clear();
toEntries(_entries, nodes);
if(_entries.empty()) {
- _finished = true;
+ setFinished(true);
} else {
// TODO use RTT here
_inFlightMessage = 0;
sendMessage();
if(_inFlightMessage == 0) {
- if(_logger->debug()) {
- _logger->debug("No message was sent in this lookup stage. Finished.");
+ if(getLogger()->debug()) {
+ getLogger()->debug("No message was sent in this lookup stage. Finished.");
}
- _finished = true;
+ setFinished(true);
}
}
}