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