mirror of https://github.com/aria2/aria2
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature: DHTAbstractNodeLookupTask::getNodesFromMessage * src/DHTAbstractNodeLookupTask.cc * src/DHTAbstractNodeLookupTask.h * src/DHTNodeLookupTask.cc * src/DHTNodeLookupTask.h * src/DHTPeerLookupTask.cc * src/DHTPeerLookupTask.hpull/1/head
parent
825cfe7715
commit
83731bab5c
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
||||||
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
|
Changed method signature:
|
||||||
|
DHTAbstractNodeLookupTask::getNodesFromMessage
|
||||||
|
* src/DHTAbstractNodeLookupTask.cc
|
||||||
|
* src/DHTAbstractNodeLookupTask.h
|
||||||
|
* src/DHTNodeLookupTask.cc
|
||||||
|
* src/DHTNodeLookupTask.h
|
||||||
|
* src/DHTPeerLookupTask.cc
|
||||||
|
* src/DHTPeerLookupTask.h
|
||||||
|
|
||||||
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
Pass std::deque<Command*> by reference to avoid unnecessary coping.
|
Pass std::deque<Command*> by reference to avoid unnecessary coping.
|
||||||
|
|
|
@ -60,7 +60,10 @@ void DHTAbstractNodeLookupTask::onReceived(const SharedHandle<DHTMessage>& messa
|
||||||
{
|
{
|
||||||
--_inFlightMessage;
|
--_inFlightMessage;
|
||||||
onReceivedInternal(message);
|
onReceivedInternal(message);
|
||||||
std::deque<SharedHandle<DHTNodeLookupEntry> > newEntries = toEntries(getNodesFromMessage(message));
|
std::deque<SharedHandle<DHTNode> > nodes;
|
||||||
|
getNodesFromMessage(nodes, message);
|
||||||
|
std::deque<SharedHandle<DHTNodeLookupEntry> > newEntries = toEntries(nodes);
|
||||||
|
|
||||||
size_t count = 0;
|
size_t count = 0;
|
||||||
for(std::deque<SharedHandle<DHTNodeLookupEntry> >::const_iterator i = newEntries.begin();
|
for(std::deque<SharedHandle<DHTNodeLookupEntry> >::const_iterator i = newEntries.begin();
|
||||||
i != newEntries.end(); ++i) {
|
i != newEntries.end(); ++i) {
|
||||||
|
@ -69,6 +72,7 @@ void DHTAbstractNodeLookupTask::onReceived(const SharedHandle<DHTMessage>& messa
|
||||||
++count;
|
++count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_logger->debug("%u node lookup entries added.", count);
|
_logger->debug("%u node lookup entries added.", count);
|
||||||
std::stable_sort(_entries.begin(), _entries.end(), DHTIDCloser(_targetID));
|
std::stable_sort(_entries.begin(), _entries.end(), DHTIDCloser(_targetID));
|
||||||
_entries.erase(std::unique(_entries.begin(), _entries.end()), _entries.end());
|
_entries.erase(std::unique(_entries.begin(), _entries.end()), _entries.end());
|
||||||
|
|
|
@ -72,7 +72,8 @@ public:
|
||||||
|
|
||||||
virtual void onTimeout(const SharedHandle<DHTNode>& node);
|
virtual void onTimeout(const SharedHandle<DHTNode>& node);
|
||||||
|
|
||||||
virtual std::deque<SharedHandle<DHTNode> > getNodesFromMessage(const SharedHandle<DHTMessage>& message) = 0;
|
virtual void getNodesFromMessage(std::deque<SharedHandle<DHTNode> >& nodes,
|
||||||
|
const SharedHandle<DHTMessage>& message) = 0;
|
||||||
|
|
||||||
virtual void onReceivedInternal(const SharedHandle<DHTMessage>& message) {}
|
virtual void onReceivedInternal(const SharedHandle<DHTMessage>& message) {}
|
||||||
|
|
||||||
|
|
|
@ -47,15 +47,15 @@ DHTNodeLookupTask::DHTNodeLookupTask(const unsigned char* targetNodeID):
|
||||||
DHTAbstractNodeLookupTask(targetNodeID)
|
DHTAbstractNodeLookupTask(targetNodeID)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
std::deque<SharedHandle<DHTNode> >
|
void
|
||||||
DHTNodeLookupTask::getNodesFromMessage(const SharedHandle<DHTMessage>& message)
|
DHTNodeLookupTask::getNodesFromMessage(std::deque<SharedHandle<DHTNode> >& nodes,
|
||||||
|
const SharedHandle<DHTMessage>& message)
|
||||||
{
|
{
|
||||||
SharedHandle<DHTFindNodeReplyMessage> m
|
SharedHandle<DHTFindNodeReplyMessage> m
|
||||||
(dynamic_pointer_cast<DHTFindNodeReplyMessage>(message));
|
(dynamic_pointer_cast<DHTFindNodeReplyMessage>(message));
|
||||||
if(m.isNull()) {
|
if(!m.isNull()) {
|
||||||
return std::deque<SharedHandle<DHTNode> >();
|
const std::deque<SharedHandle<DHTNode> >& knodes = m->getClosestKNodes();
|
||||||
} else {
|
nodes.insert(nodes.end(), knodes.begin(), knodes.end());
|
||||||
return m->getClosestKNodes();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,8 @@ class DHTNodeLookupTask:public DHTAbstractNodeLookupTask {
|
||||||
public:
|
public:
|
||||||
DHTNodeLookupTask(const unsigned char* targetNodeID);
|
DHTNodeLookupTask(const unsigned char* targetNodeID);
|
||||||
|
|
||||||
virtual std::deque<SharedHandle<DHTNode> > getNodesFromMessage(const SharedHandle<DHTMessage>& message);
|
virtual void getNodesFromMessage(std::deque<SharedHandle<DHTNode> >& nodes,
|
||||||
|
const SharedHandle<DHTMessage>& message);
|
||||||
|
|
||||||
virtual SharedHandle<DHTMessage> createMessage(const SharedHandle<DHTNode>& remoteNode);
|
virtual SharedHandle<DHTMessage> createMessage(const SharedHandle<DHTNode>& remoteNode);
|
||||||
};
|
};
|
||||||
|
|
|
@ -56,13 +56,14 @@ DHTPeerLookupTask::DHTPeerLookupTask(const SharedHandle<BtContext>& btContext):
|
||||||
_peerStorage(PEER_STORAGE(btContext)),
|
_peerStorage(PEER_STORAGE(btContext)),
|
||||||
_btRuntime(BT_RUNTIME(btContext)) {}
|
_btRuntime(BT_RUNTIME(btContext)) {}
|
||||||
|
|
||||||
std::deque<SharedHandle<DHTNode> > DHTPeerLookupTask::getNodesFromMessage(const SharedHandle<DHTMessage>& message)
|
void
|
||||||
|
DHTPeerLookupTask::getNodesFromMessage(std::deque<SharedHandle<DHTNode> >& nodes,
|
||||||
|
const SharedHandle<DHTMessage>& message)
|
||||||
{
|
{
|
||||||
SharedHandle<DHTGetPeersReplyMessage> m(dynamic_pointer_cast<DHTGetPeersReplyMessage>(message));
|
SharedHandle<DHTGetPeersReplyMessage> m(dynamic_pointer_cast<DHTGetPeersReplyMessage>(message));
|
||||||
if(m.isNull()) {
|
if(!m.isNull()) {
|
||||||
return std::deque<SharedHandle<DHTNode> >();
|
const std::deque<SharedHandle<DHTNode> >& knodes = m->getClosestKNodes();
|
||||||
} else {
|
nodes.insert(nodes.end(), knodes.begin(), knodes.end());
|
||||||
return m->getClosestKNodes();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,8 @@ private:
|
||||||
public:
|
public:
|
||||||
DHTPeerLookupTask(const SharedHandle<BtContext>& btContext);
|
DHTPeerLookupTask(const SharedHandle<BtContext>& btContext);
|
||||||
|
|
||||||
virtual std::deque<SharedHandle<DHTNode> > getNodesFromMessage(const SharedHandle<DHTMessage>& message);
|
virtual void getNodesFromMessage(std::deque<SharedHandle<DHTNode> >& nodes,
|
||||||
|
const SharedHandle<DHTMessage>& message);
|
||||||
|
|
||||||
virtual void onReceivedInternal(const SharedHandle<DHTMessage>& message);
|
virtual void onReceivedInternal(const SharedHandle<DHTMessage>& message);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue