mirror of
https://github.com/aria2/aria2.git
synced 2025-02-26 08:22:11 +00:00
Rewritten DHTMessageCallback using Visitor pattern. Eliminated dynamic_pointer_cast. * src/DHTMessageCallbackImpl.cc: Removed * src/DHTMessageReceiver.cc * src/DHTAbstractNodeLookupTask.h * src/DHTAnnouncePeerReplyMessage.h * src/DHTReplaceNodeTask.h * src/DHTFindNodeReplyMessage.cc * src/DHTGetPeersReplyMessage.h * src/DHTPeerLookupTask.h * src/DHTMessageCallbackImpl.h: Removed * src/DHTMessageFactory.h * src/DHTNodeLookupTaskCallback.h * src/DHTMessageTracker.h * src/DHTMessageCallbackListener.h: Removed * src/DHTGetPeersReplyMessage.cc * src/DHTMessageCallback.h * src/DHTAnnouncePeerReplyMessage.cc * src/DHTNodeLookupTask.h * src/DHTReplaceNodeTask.cc * src/DHTPeerLookupTaskCallback.cc * src/DHTMessageTracker.cc * src/DHTPingReplyMessage.cc * src/DHTPingTask.cc * src/DHTMessageFactoryImpl.h * src/Makefile.am * src/DHTNodeLookupTask.cc * src/DHTPeerLookupTaskCallback.h * src/DHTPeerLookupTask.cc * src/DHTMessageReceiver.h * src/DHTMessageFactoryImpl.cc * src/DHTResponseMessage.h * src/DHTFindNodeReplyMessage.h * src/DHTPingReplyMessageCallback.h * src/Makefile.in * src/DHTBucketRefreshTask.cc * src/DHTNodeLookupTaskCallback.cc * src/DHTPingTask.h * src/DHTPingReplyMessage.h * src/DHTAbstractNodeLookupTask.cc: Removed * test/DHTMessageTrackerTest.cc * test/DHTPingMessageTest.cc * test/DHTGetPeersMessageTest.cc * test/MockDHTMessage.h * test/MockDHTMessageFactory.h * test/DHTFindNodeMessageTest.cc * test/MockDHTMessageCallback.h * test/DHTAnnouncePeerMessageTest.cc
133 lines
4.0 KiB
C++
133 lines
4.0 KiB
C++
#ifndef _D_MOCK_DHT_MESSAGE_FACTORY_H_
|
|
#define _D_MOCK_DHT_MESSAGE_FACTORY_H_
|
|
|
|
#include "DHTMessageFactory.h"
|
|
#include "DHTNode.h"
|
|
#include "MockDHTMessage.h"
|
|
#include "bencode.h"
|
|
|
|
namespace aria2 {
|
|
|
|
class MockDHTMessageFactory:public DHTMessageFactory {
|
|
protected:
|
|
SharedHandle<DHTNode> _localNode;
|
|
public:
|
|
MockDHTMessageFactory() {}
|
|
|
|
virtual ~MockDHTMessageFactory() {}
|
|
|
|
virtual SharedHandle<DHTQueryMessage>
|
|
createQueryMessage(const BDE& dict,
|
|
const std::string& ipaddr, uint16_t port)
|
|
{
|
|
return SharedHandle<DHTQueryMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTResponseMessage>
|
|
createResponseMessage(const std::string& messageType,
|
|
const BDE& dict,
|
|
const std::string& ipaddr, uint16_t port)
|
|
{
|
|
SharedHandle<DHTNode> remoteNode(new DHTNode());
|
|
// TODO At this point, removeNode's ID is random.
|
|
remoteNode->setIPAddress(ipaddr);
|
|
remoteNode->setPort(port);
|
|
SharedHandle<MockDHTResponseMessage> m
|
|
(new MockDHTResponseMessage(_localNode, remoteNode, dict["t"].s()));
|
|
return m;
|
|
}
|
|
|
|
virtual SharedHandle<DHTQueryMessage>
|
|
createPingMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const std::string& transactionID = "")
|
|
{
|
|
return SharedHandle<DHTQueryMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTResponseMessage>
|
|
createPingReplyMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const unsigned char* remoteNodeID,
|
|
const std::string& transactionID)
|
|
{
|
|
return SharedHandle<DHTResponseMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTQueryMessage>
|
|
createFindNodeMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const unsigned char* targetNodeID,
|
|
const std::string& transactionID = "")
|
|
{
|
|
return SharedHandle<DHTQueryMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTResponseMessage>
|
|
createFindNodeReplyMessage
|
|
(const SharedHandle<DHTNode>& remoteNode,
|
|
const std::vector<SharedHandle<DHTNode> >& closestKNodes,
|
|
const std::string& transactionID)
|
|
{
|
|
return SharedHandle<DHTResponseMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTQueryMessage>
|
|
createGetPeersMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const unsigned char* infoHash,
|
|
const std::string& transactionID)
|
|
{
|
|
return SharedHandle<DHTQueryMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTResponseMessage>
|
|
createGetPeersReplyMessage
|
|
(const SharedHandle<DHTNode>& remoteNode,
|
|
const std::vector<SharedHandle<DHTNode> >& closestKNodes,
|
|
const std::string& token,
|
|
const std::string& transactionID)
|
|
{
|
|
return SharedHandle<DHTResponseMessage>();
|
|
}
|
|
|
|
|
|
virtual SharedHandle<DHTResponseMessage>
|
|
createGetPeersReplyMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const std::vector<SharedHandle<Peer> >& peers,
|
|
const std::string& token,
|
|
const std::string& transactionID)
|
|
{
|
|
return SharedHandle<DHTResponseMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTQueryMessage>
|
|
createAnnouncePeerMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const unsigned char* infoHash,
|
|
uint16_t tcpPort,
|
|
const std::string& token,
|
|
const std::string& transactionID = "")
|
|
{
|
|
return SharedHandle<DHTQueryMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTResponseMessage>
|
|
createAnnouncePeerReplyMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const std::string& transactionID)
|
|
{
|
|
return SharedHandle<DHTResponseMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTMessage>
|
|
createUnknownMessage(const unsigned char* data, size_t length,
|
|
const std::string& ipaddr, uint16_t port)
|
|
{
|
|
return SharedHandle<DHTMessage>();
|
|
}
|
|
|
|
void setLocalNode(const SharedHandle<DHTNode>& node)
|
|
{
|
|
_localNode = node;
|
|
}
|
|
};
|
|
|
|
} // namespace aria2
|
|
|
|
#endif // _D_MOCK_DHT_MESSAGE_FACTORY_H_
|