mirror of https://github.com/aria2/aria2
Don't instantiate SharedHandle for DHT{Query, Response}Message subclass
parent
5323afa5b2
commit
c6b76f1d32
|
@ -303,8 +303,7 @@ const std::string& getDefaultVersion()
|
|||
}
|
||||
} // namespace
|
||||
|
||||
void DHTMessageFactoryImpl::setCommonProperty
|
||||
(const SharedHandle<DHTAbstractMessage>& m)
|
||||
void DHTMessageFactoryImpl::setCommonProperty(DHTAbstractMessage* m)
|
||||
{
|
||||
m->setConnection(connection_);
|
||||
m->setMessageDispatcher(dispatcher_);
|
||||
|
@ -316,10 +315,9 @@ void DHTMessageFactoryImpl::setCommonProperty
|
|||
SharedHandle<DHTQueryMessage> DHTMessageFactoryImpl::createPingMessage
|
||||
(const SharedHandle<DHTNode>& remoteNode, const std::string& transactionID)
|
||||
{
|
||||
SharedHandle<DHTPingMessage> m
|
||||
(new DHTPingMessage(localNode_, remoteNode, transactionID));
|
||||
DHTPingMessage* m(new DHTPingMessage(localNode_, remoteNode, transactionID));
|
||||
setCommonProperty(m);
|
||||
return m;
|
||||
return SharedHandle<DHTQueryMessage>(m);
|
||||
}
|
||||
|
||||
SharedHandle<DHTResponseMessage> DHTMessageFactoryImpl::createPingReplyMessage
|
||||
|
@ -327,10 +325,10 @@ SharedHandle<DHTResponseMessage> DHTMessageFactoryImpl::createPingReplyMessage
|
|||
const unsigned char* id,
|
||||
const std::string& transactionID)
|
||||
{
|
||||
SharedHandle<DHTPingReplyMessage> m
|
||||
DHTPingReplyMessage* m
|
||||
(new DHTPingReplyMessage(localNode_, remoteNode, id, transactionID));
|
||||
setCommonProperty(m);
|
||||
return m;
|
||||
return SharedHandle<DHTResponseMessage>(m);
|
||||
}
|
||||
|
||||
SharedHandle<DHTQueryMessage> DHTMessageFactoryImpl::createFindNodeMessage
|
||||
|
@ -338,11 +336,10 @@ SharedHandle<DHTQueryMessage> DHTMessageFactoryImpl::createFindNodeMessage
|
|||
const unsigned char* targetNodeID,
|
||||
const std::string& transactionID)
|
||||
{
|
||||
SharedHandle<DHTFindNodeMessage> m
|
||||
(new DHTFindNodeMessage
|
||||
(localNode_, remoteNode, targetNodeID, transactionID));
|
||||
DHTFindNodeMessage* m(new DHTFindNodeMessage
|
||||
(localNode_, remoteNode, targetNodeID, transactionID));
|
||||
setCommonProperty(m);
|
||||
return m;
|
||||
return SharedHandle<DHTQueryMessage>(m);
|
||||
}
|
||||
|
||||
SharedHandle<DHTResponseMessage>
|
||||
|
@ -351,12 +348,11 @@ DHTMessageFactoryImpl::createFindNodeReplyMessage
|
|||
const std::vector<SharedHandle<DHTNode> >& closestKNodes,
|
||||
const std::string& transactionID)
|
||||
{
|
||||
SharedHandle<DHTFindNodeReplyMessage> m
|
||||
(new DHTFindNodeReplyMessage
|
||||
(family_, localNode_, remoteNode, transactionID));
|
||||
DHTFindNodeReplyMessage* m(new DHTFindNodeReplyMessage
|
||||
(family_, localNode_, remoteNode, transactionID));
|
||||
m->setClosestKNodes(closestKNodes);
|
||||
setCommonProperty(m);
|
||||
return m;
|
||||
return SharedHandle<DHTResponseMessage>(m);
|
||||
}
|
||||
|
||||
void DHTMessageFactoryImpl::extractNodes
|
||||
|
@ -404,12 +400,12 @@ DHTMessageFactoryImpl::createGetPeersMessage
|
|||
const unsigned char* infoHash,
|
||||
const std::string& transactionID)
|
||||
{
|
||||
SharedHandle<DHTGetPeersMessage> m
|
||||
DHTGetPeersMessage* m
|
||||
(new DHTGetPeersMessage(localNode_, remoteNode, infoHash, transactionID));
|
||||
m->setPeerAnnounceStorage(peerAnnounceStorage_);
|
||||
m->setTokenTracker(tokenTracker_);
|
||||
setCommonProperty(m);
|
||||
return m;
|
||||
return SharedHandle<DHTQueryMessage>(m);
|
||||
}
|
||||
|
||||
SharedHandle<DHTResponseMessage>
|
||||
|
@ -444,7 +440,7 @@ DHTMessageFactoryImpl::createGetPeersReplyMessage
|
|||
peers.push_back(peer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const String* token = getString(rDict, DHTGetPeersReplyMessage::TOKEN);
|
||||
return createGetPeersReplyMessage
|
||||
(remoteNode, nodes, peers, token->s(), transactionID);
|
||||
|
@ -458,13 +454,13 @@ DHTMessageFactoryImpl::createGetPeersReplyMessage
|
|||
const std::string& token,
|
||||
const std::string& transactionID)
|
||||
{
|
||||
SharedHandle<DHTGetPeersReplyMessage> m
|
||||
(new DHTGetPeersReplyMessage
|
||||
(family_, localNode_, remoteNode, token, transactionID));
|
||||
DHTGetPeersReplyMessage* m(new DHTGetPeersReplyMessage
|
||||
(family_, localNode_, remoteNode, token,
|
||||
transactionID));
|
||||
m->setClosestKNodes(closestKNodes);
|
||||
m->setValues(values);
|
||||
setCommonProperty(m);
|
||||
return m;
|
||||
return SharedHandle<DHTResponseMessage>(m);
|
||||
}
|
||||
|
||||
SharedHandle<DHTQueryMessage>
|
||||
|
@ -475,23 +471,23 @@ DHTMessageFactoryImpl::createAnnouncePeerMessage
|
|||
const std::string& token,
|
||||
const std::string& transactionID)
|
||||
{
|
||||
SharedHandle<DHTAnnouncePeerMessage> m
|
||||
(new DHTAnnouncePeerMessage
|
||||
(localNode_, remoteNode, infoHash, tcpPort, token, transactionID));
|
||||
DHTAnnouncePeerMessage* m(new DHTAnnouncePeerMessage
|
||||
(localNode_, remoteNode, infoHash, tcpPort, token,
|
||||
transactionID));
|
||||
m->setPeerAnnounceStorage(peerAnnounceStorage_);
|
||||
m->setTokenTracker(tokenTracker_);
|
||||
setCommonProperty(m);
|
||||
return m;
|
||||
return SharedHandle<DHTQueryMessage>(m);
|
||||
}
|
||||
|
||||
SharedHandle<DHTResponseMessage>
|
||||
DHTMessageFactoryImpl::createAnnouncePeerReplyMessage
|
||||
(const SharedHandle<DHTNode>& remoteNode, const std::string& transactionID)
|
||||
{
|
||||
SharedHandle<DHTAnnouncePeerReplyMessage> m
|
||||
DHTAnnouncePeerReplyMessage* m
|
||||
(new DHTAnnouncePeerReplyMessage(localNode_, remoteNode, transactionID));
|
||||
setCommonProperty(m);
|
||||
return m;
|
||||
return SharedHandle<DHTResponseMessage>(m);
|
||||
}
|
||||
|
||||
SharedHandle<DHTMessage>
|
||||
|
@ -500,9 +496,9 @@ DHTMessageFactoryImpl::createUnknownMessage
|
|||
const std::string& ipaddr, uint16_t port)
|
||||
|
||||
{
|
||||
SharedHandle<DHTUnknownMessage> m
|
||||
DHTUnknownMessage* m
|
||||
(new DHTUnknownMessage(localNode_, data, length, ipaddr, port));
|
||||
return m;
|
||||
return SharedHandle<DHTMessage>(m);
|
||||
}
|
||||
|
||||
void DHTMessageFactoryImpl::setRoutingTable(DHTRoutingTable* routingTable)
|
||||
|
@ -520,7 +516,7 @@ void DHTMessageFactoryImpl::setMessageDispatcher
|
|||
{
|
||||
dispatcher_ = dispatcher;
|
||||
}
|
||||
|
||||
|
||||
void DHTMessageFactoryImpl::setPeerAnnounceStorage
|
||||
(DHTPeerAnnounceStorage* storage)
|
||||
{
|
||||
|
|
|
@ -59,11 +59,11 @@ private:
|
|||
DHTMessageDispatcher* dispatcher_;
|
||||
|
||||
DHTRoutingTable* routingTable_;
|
||||
|
||||
|
||||
DHTPeerAnnounceStorage* peerAnnounceStorage_;
|
||||
|
||||
DHTTokenTracker* tokenTracker_;
|
||||
|
||||
|
||||
// search node in routingTable. If it is not found, create new one.
|
||||
SharedHandle<DHTNode> getRemoteNode
|
||||
(const unsigned char* id, const std::string& ipaddr, uint16_t port) const;
|
||||
|
@ -76,7 +76,7 @@ private:
|
|||
(std::vector<SharedHandle<DHTNode> >& nodes,
|
||||
const unsigned char* src, size_t length);
|
||||
|
||||
void setCommonProperty(const SharedHandle<DHTAbstractMessage>& m);
|
||||
void setCommonProperty(DHTAbstractMessage* m);
|
||||
|
||||
public:
|
||||
DHTMessageFactoryImpl(int family);
|
||||
|
|
Loading…
Reference in New Issue