| 
														
															@@ -71,7 +71,8 @@ DHTMessageFactoryImpl::DHTMessageFactoryImpl(): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 DHTMessageFactoryImpl::~DHTMessageFactoryImpl() {} 
														 | 
														
														 | 
														
															 DHTMessageFactoryImpl::~DHTMessageFactoryImpl() {} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 SharedHandle<DHTNode> 
														 | 
														
														 | 
														
															 SharedHandle<DHTNode> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-DHTMessageFactoryImpl::getRemoteNode(const unsigned char* id, const std::string& ipaddr, uint16_t port) const 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+DHTMessageFactoryImpl::getRemoteNode 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const unsigned char* id, const std::string& ipaddr, uint16_t port) const 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   SharedHandle<DHTNode> node = _routingTable->getNode(id, ipaddr, port); 
														 | 
														
														 | 
														
															   SharedHandle<DHTNode> node = _routingTable->getNode(id, ipaddr, port); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   if(node.isNull()) { 
														 | 
														
														 | 
														
															   if(node.isNull()) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -184,10 +185,8 @@ static void setVersion(const SharedHandle<DHTMessage>& msg, const BDE& dict) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> DHTMessageFactoryImpl::createQueryMessage 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(const BDE& dict, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- const std::string& ipaddr, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- uint16_t port) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTQueryMessage> DHTMessageFactoryImpl::createQueryMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const BDE& dict, const std::string& ipaddr, uint16_t port) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   const BDE& messageType = getString(dict, DHTQueryMessage::Q); 
														 | 
														
														 | 
														
															   const BDE& messageType = getString(dict, DHTQueryMessage::Q); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   const BDE& transactionID = getString(dict, DHTMessage::T); 
														 | 
														
														 | 
														
															   const BDE& transactionID = getString(dict, DHTMessage::T); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -199,7 +198,7 @@ SharedHandle<DHTMessage> DHTMessageFactoryImpl::createQueryMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   const BDE& id = getString(aDict, DHTMessage::ID); 
														 | 
														
														 | 
														
															   const BDE& id = getString(aDict, DHTMessage::ID); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   validateID(id); 
														 | 
														
														 | 
														
															   validateID(id); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   SharedHandle<DHTNode> remoteNode = getRemoteNode(id.uc(), ipaddr, port); 
														 | 
														
														 | 
														
															   SharedHandle<DHTNode> remoteNode = getRemoteNode(id.uc(), ipaddr, port); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  SharedHandle<DHTMessage> msg; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  SharedHandle<DHTQueryMessage> msg; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   if(messageType.s() == DHTPingMessage::PING) { 
														 | 
														
														 | 
														
															   if(messageType.s() == DHTPingMessage::PING) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     msg = createPingMessage(remoteNode, transactionID.s()); 
														 | 
														
														 | 
														
															     msg = createPingMessage(remoteNode, transactionID.s()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } else if(messageType.s() == DHTFindNodeMessage::FIND_NODE) { 
														 | 
														
														 | 
														
															   } else if(messageType.s() == DHTFindNodeMessage::FIND_NODE) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -233,11 +232,12 @@ SharedHandle<DHTMessage> DHTMessageFactoryImpl::createQueryMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   return msg; 
														 | 
														
														 | 
														
															   return msg; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-DHTMessageFactoryImpl::createResponseMessage(const std::string& messageType, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                             const BDE& dict, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                             const std::string& ipaddr, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                             uint16_t port) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTResponseMessage> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+DHTMessageFactoryImpl::createResponseMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const std::string& messageType, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ const BDE& dict, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ const std::string& ipaddr, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ uint16_t port) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   const BDE& transactionID = getString(dict, DHTMessage::T); 
														 | 
														
														 | 
														
															   const BDE& transactionID = getString(dict, DHTMessage::T); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   const BDE& y = getString(dict, DHTMessage::Y); 
														 | 
														
														 | 
														
															   const BDE& y = getString(dict, DHTMessage::Y); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -265,7 +265,7 @@ DHTMessageFactoryImpl::createResponseMessage(const std::string& messageType, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   const BDE& id = getString(rDict, DHTMessage::ID); 
														 | 
														
														 | 
														
															   const BDE& id = getString(rDict, DHTMessage::ID); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   validateID(id); 
														 | 
														
														 | 
														
															   validateID(id); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   SharedHandle<DHTNode> remoteNode = getRemoteNode(id.uc(), ipaddr, port); 
														 | 
														
														 | 
														
															   SharedHandle<DHTNode> remoteNode = getRemoteNode(id.uc(), ipaddr, port); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  SharedHandle<DHTMessage> msg; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  SharedHandle<DHTResponseMessage> msg; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   if(messageType == DHTPingReplyMessage::PING) { 
														 | 
														
														 | 
														
															   if(messageType == DHTPingReplyMessage::PING) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     msg = createPingReplyMessage(remoteNode, id.uc(), transactionID.s()); 
														 | 
														
														 | 
														
															     msg = createPingReplyMessage(remoteNode, id.uc(), transactionID.s()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } else if(messageType == DHTFindNodeReplyMessage::FIND_NODE) { 
														 | 
														
														 | 
														
															   } else if(messageType == DHTFindNodeReplyMessage::FIND_NODE) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -317,34 +317,38 @@ void DHTMessageFactoryImpl::setCommonProperty(const SharedHandle<DHTAbstractMess 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   m->setVersion(getDefaultVersion()); 
														 | 
														
														 | 
														
															   m->setVersion(getDefaultVersion()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> DHTMessageFactoryImpl::createPingMessage(const SharedHandle<DHTNode>& remoteNode, const std::string& transactionID) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTQueryMessage> DHTMessageFactoryImpl::createPingMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const SharedHandle<DHTNode>& remoteNode, const std::string& transactionID) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   SharedHandle<DHTPingMessage> m(new DHTPingMessage(_localNode, remoteNode, transactionID)); 
														 | 
														
														 | 
														
															   SharedHandle<DHTPingMessage> m(new DHTPingMessage(_localNode, remoteNode, transactionID)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   setCommonProperty(m); 
														 | 
														
														 | 
														
															   setCommonProperty(m); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   return m; 
														 | 
														
														 | 
														
															   return m; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-DHTMessageFactoryImpl::createPingReplyMessage(const SharedHandle<DHTNode>& remoteNode, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                              const unsigned char* id, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                              const std::string& transactionID) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTResponseMessage> DHTMessageFactoryImpl::createPingReplyMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const SharedHandle<DHTNode>& remoteNode, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ const unsigned char* id, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ const std::string& transactionID) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  SharedHandle<DHTPingReplyMessage> m(new DHTPingReplyMessage(_localNode, remoteNode, id, transactionID)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  SharedHandle<DHTPingReplyMessage> m 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (new DHTPingReplyMessage(_localNode, remoteNode, id, transactionID)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   setCommonProperty(m); 
														 | 
														
														 | 
														
															   setCommonProperty(m); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   return m; 
														 | 
														
														 | 
														
															   return m; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-DHTMessageFactoryImpl::createFindNodeMessage(const SharedHandle<DHTNode>& remoteNode, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                             const unsigned char* targetNodeID, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                             const std::string& transactionID) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTQueryMessage> DHTMessageFactoryImpl::createFindNodeMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const SharedHandle<DHTNode>& remoteNode, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ const unsigned char* targetNodeID, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ const std::string& transactionID) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  SharedHandle<DHTFindNodeMessage> m(new DHTFindNodeMessage(_localNode, remoteNode, targetNodeID, transactionID)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  SharedHandle<DHTFindNodeMessage> m 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (new DHTFindNodeMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     (_localNode, remoteNode, targetNodeID, transactionID)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   setCommonProperty(m); 
														 | 
														
														 | 
														
															   setCommonProperty(m); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   return m; 
														 | 
														
														 | 
														
															   return m; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTResponseMessage> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 DHTMessageFactoryImpl::createFindNodeReplyMessage 
														 | 
														
														 | 
														
															 DHTMessageFactoryImpl::createFindNodeReplyMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (const SharedHandle<DHTNode>& remoteNode, 
														 | 
														
														 | 
														
															 (const SharedHandle<DHTNode>& remoteNode, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  const std::vector<SharedHandle<DHTNode> >& closestKNodes, 
														 | 
														
														 | 
														
															  const std::vector<SharedHandle<DHTNode> >& closestKNodes, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -378,7 +382,7 @@ DHTMessageFactoryImpl::extractNodes(const unsigned char* src, size_t length) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   return nodes; 
														 | 
														
														 | 
														
															   return nodes; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTResponseMessage> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 DHTMessageFactoryImpl::createFindNodeReplyMessage 
														 | 
														
														 | 
														
															 DHTMessageFactoryImpl::createFindNodeReplyMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (const SharedHandle<DHTNode>& remoteNode, 
														 | 
														
														 | 
														
															 (const SharedHandle<DHTNode>& remoteNode, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  const BDE& dict, 
														 | 
														
														 | 
														
															  const BDE& dict, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -392,22 +396,21 @@ DHTMessageFactoryImpl::createFindNodeReplyMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   return createFindNodeReplyMessage(remoteNode, nodes, transactionID); 
														 | 
														
														 | 
														
															   return createFindNodeReplyMessage(remoteNode, nodes, transactionID); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-DHTMessageFactoryImpl::createGetPeersMessage(const SharedHandle<DHTNode>& remoteNode, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                             const unsigned char* infoHash, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                             const std::string& transactionID) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  SharedHandle<DHTGetPeersMessage> m(new DHTGetPeersMessage(_localNode, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                            remoteNode, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                            infoHash, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                            transactionID)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTQueryMessage> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+DHTMessageFactoryImpl::createGetPeersMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const SharedHandle<DHTNode>& remoteNode, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ const unsigned char* infoHash, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ const std::string& transactionID) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  SharedHandle<DHTGetPeersMessage> m 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (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 m; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTResponseMessage> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 DHTMessageFactoryImpl::createGetPeersReplyMessageWithNodes 
														 | 
														
														 | 
														
															 DHTMessageFactoryImpl::createGetPeersReplyMessageWithNodes 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (const SharedHandle<DHTNode>& remoteNode, 
														 | 
														
														 | 
														
															 (const SharedHandle<DHTNode>& remoteNode, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  const BDE& dict, 
														 | 
														
														 | 
														
															  const BDE& dict, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -423,7 +426,7 @@ DHTMessageFactoryImpl::createGetPeersReplyMessageWithNodes 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     transactionID); 
														 | 
														
														 | 
														
															                                     transactionID); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTResponseMessage> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 DHTMessageFactoryImpl::createGetPeersReplyMessage 
														 | 
														
														 | 
														
															 DHTMessageFactoryImpl::createGetPeersReplyMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (const SharedHandle<DHTNode>& remoteNode, 
														 | 
														
														 | 
														
															 (const SharedHandle<DHTNode>& remoteNode, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  const std::vector<SharedHandle<DHTNode> >& closestKNodes, 
														 | 
														
														 | 
														
															  const std::vector<SharedHandle<DHTNode> >& closestKNodes, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -437,7 +440,7 @@ DHTMessageFactoryImpl::createGetPeersReplyMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   return m; 
														 | 
														
														 | 
														
															   return m; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTResponseMessage> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 DHTMessageFactoryImpl::createGetPeersReplyMessageWithValues 
														 | 
														
														 | 
														
															 DHTMessageFactoryImpl::createGetPeersReplyMessageWithValues 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (const SharedHandle<DHTNode>& remoteNode, 
														 | 
														
														 | 
														
															 (const SharedHandle<DHTNode>& remoteNode, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  const BDE& dict, 
														 | 
														
														 | 
														
															  const BDE& dict, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -462,37 +465,40 @@ DHTMessageFactoryImpl::createGetPeersReplyMessageWithValues 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     transactionID); 
														 | 
														
														 | 
														
															                                     transactionID); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTResponseMessage> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 DHTMessageFactoryImpl::createGetPeersReplyMessage 
														 | 
														
														 | 
														
															 DHTMessageFactoryImpl::createGetPeersReplyMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (const SharedHandle<DHTNode>& remoteNode, 
														 | 
														
														 | 
														
															 (const SharedHandle<DHTNode>& remoteNode, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  const std::vector<SharedHandle<Peer> >& values, 
														 | 
														
														 | 
														
															  const std::vector<SharedHandle<Peer> >& values, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  const std::string& token, 
														 | 
														
														 | 
														
															  const std::string& token, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  const std::string& transactionID) 
														 | 
														
														 | 
														
															  const std::string& transactionID) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  SharedHandle<DHTGetPeersReplyMessage> m(new DHTGetPeersReplyMessage(_localNode, remoteNode, token, transactionID)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  SharedHandle<DHTGetPeersReplyMessage> m 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (new DHTGetPeersReplyMessage(_localNode, remoteNode, token, transactionID)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   m->setValues(values); 
														 | 
														
														 | 
														
															   m->setValues(values); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   setCommonProperty(m); 
														 | 
														
														 | 
														
															   setCommonProperty(m); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   return m; 
														 | 
														
														 | 
														
															   return m; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-DHTMessageFactoryImpl::createAnnouncePeerMessage(const SharedHandle<DHTNode>& remoteNode, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                 const unsigned char* infoHash, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                 uint16_t tcpPort, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                 const std::string& token, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                 const std::string& transactionID) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTQueryMessage> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+DHTMessageFactoryImpl::createAnnouncePeerMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const SharedHandle<DHTNode>& remoteNode, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ const unsigned char* infoHash, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ uint16_t tcpPort, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ const std::string& token, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ const std::string& transactionID) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   SharedHandle<DHTAnnouncePeerMessage> m 
														 | 
														
														 | 
														
															   SharedHandle<DHTAnnouncePeerMessage> m 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    (new DHTAnnouncePeerMessage(_localNode, remoteNode, infoHash, tcpPort, token, transactionID)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (new DHTAnnouncePeerMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     (_localNode, remoteNode, infoHash, tcpPort, token, transactionID)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   m->setPeerAnnounceStorage(_peerAnnounceStorage); 
														 | 
														
														 | 
														
															   m->setPeerAnnounceStorage(_peerAnnounceStorage); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   m->setTokenTracker(_tokenTracker); 
														 | 
														
														 | 
														
															   m->setTokenTracker(_tokenTracker); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   setCommonProperty(m); 
														 | 
														
														 | 
														
															   setCommonProperty(m); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   return m; 
														 | 
														
														 | 
														
															   return m; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-SharedHandle<DHTMessage> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-DHTMessageFactoryImpl::createAnnouncePeerReplyMessage(const SharedHandle<DHTNode>& remoteNode, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                      const std::string& transactionID) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+SharedHandle<DHTResponseMessage> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+DHTMessageFactoryImpl::createAnnouncePeerReplyMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const SharedHandle<DHTNode>& remoteNode, const std::string& transactionID) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   SharedHandle<DHTAnnouncePeerReplyMessage> m 
														 | 
														
														 | 
														
															   SharedHandle<DHTAnnouncePeerReplyMessage> m 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (new DHTAnnouncePeerReplyMessage(_localNode, remoteNode, transactionID)); 
														 | 
														
														 | 
														
															     (new DHTAnnouncePeerReplyMessage(_localNode, remoteNode, transactionID)); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -501,8 +507,9 @@ DHTMessageFactoryImpl::createAnnouncePeerReplyMessage(const SharedHandle<DHTNode 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 SharedHandle<DHTMessage> 
														 | 
														
														 | 
														
															 SharedHandle<DHTMessage> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-DHTMessageFactoryImpl::createUnknownMessage(const unsigned char* data, size_t length, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                            const std::string& ipaddr, uint16_t port) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+DHTMessageFactoryImpl::createUnknownMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const unsigned char* data, size_t length, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ const std::string& ipaddr, uint16_t port) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   SharedHandle<DHTUnknownMessage> m 
														 | 
														
														 | 
														
															   SharedHandle<DHTUnknownMessage> m 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -510,32 +517,38 @@ DHTMessageFactoryImpl::createUnknownMessage(const unsigned char* data, size_t le 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   return m; 
														 | 
														
														 | 
														
															   return m; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-void DHTMessageFactoryImpl::setRoutingTable(const WeakHandle<DHTRoutingTable>& routingTable) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+void DHTMessageFactoryImpl::setRoutingTable 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const WeakHandle<DHTRoutingTable>& routingTable) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   _routingTable = routingTable; 
														 | 
														
														 | 
														
															   _routingTable = routingTable; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-void DHTMessageFactoryImpl::setConnection(const WeakHandle<DHTConnection>& connection) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+void DHTMessageFactoryImpl::setConnection 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const WeakHandle<DHTConnection>& connection) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   _connection = connection; 
														 | 
														
														 | 
														
															   _connection = connection; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-void DHTMessageFactoryImpl::setMessageDispatcher(const WeakHandle<DHTMessageDispatcher>& dispatcher) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+void DHTMessageFactoryImpl::setMessageDispatcher 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const WeakHandle<DHTMessageDispatcher>& dispatcher) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   _dispatcher = dispatcher; 
														 | 
														
														 | 
														
															   _dispatcher = dispatcher; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															    
														 | 
														
														 | 
														
															    
														 | 
													
												
											
												
													
														| 
														 | 
														
															-void DHTMessageFactoryImpl::setPeerAnnounceStorage(const WeakHandle<DHTPeerAnnounceStorage>& storage) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+void DHTMessageFactoryImpl::setPeerAnnounceStorage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const WeakHandle<DHTPeerAnnounceStorage>& storage) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   _peerAnnounceStorage = storage; 
														 | 
														
														 | 
														
															   _peerAnnounceStorage = storage; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-void DHTMessageFactoryImpl::setTokenTracker(const WeakHandle<DHTTokenTracker>& tokenTracker) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+void DHTMessageFactoryImpl::setTokenTracker 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const WeakHandle<DHTTokenTracker>& tokenTracker) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   _tokenTracker = tokenTracker; 
														 | 
														
														 | 
														
															   _tokenTracker = tokenTracker; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-void DHTMessageFactoryImpl::setLocalNode(const SharedHandle<DHTNode>& localNode) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+void DHTMessageFactoryImpl::setLocalNode 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(const SharedHandle<DHTNode>& localNode) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   _localNode = localNode; 
														 | 
														
														 | 
														
															   _localNode = localNode; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 |