mirror of
https://github.com/aria2/aria2.git
synced 2025-02-18 21:27:34 +00:00

Rewritten SharedHandle. Now copy constructor taking raw pointer has keyword explicit and SharedHandle's default constructor initializes its internal obj to null, old implementation initializes it using obj's default constructor. To assign null, write SharedHandle<T> x(...); x.reset(); TODO: test/SharedHandleTest.cc needs more tests. * src/SharedHandle.h
130 lines
3.4 KiB
C++
130 lines
3.4 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 "Dictionary.h"
|
|
#include "Data.h"
|
|
|
|
namespace aria2 {
|
|
|
|
class MockDHTMessageFactory:public DHTMessageFactory {
|
|
protected:
|
|
SharedHandle<DHTNode> _localNode;
|
|
public:
|
|
MockDHTMessageFactory() {}
|
|
|
|
virtual ~MockDHTMessageFactory() {}
|
|
|
|
virtual SharedHandle<DHTMessage>
|
|
createQueryMessage(const Dictionary* d,
|
|
const std::string& ipaddr, uint16_t port)
|
|
{
|
|
return SharedHandle<DHTMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTMessage>
|
|
createResponseMessage(const std::string& messageType,
|
|
const Dictionary* d,
|
|
const SharedHandle<DHTNode>& remoteNode)
|
|
{
|
|
SharedHandle<MockDHTMessage> m
|
|
(new MockDHTMessage(_localNode, remoteNode,
|
|
reinterpret_cast<const Data*>(d->get("t"))->toString()));
|
|
m->setReply(true);
|
|
return m;
|
|
}
|
|
|
|
virtual SharedHandle<DHTMessage>
|
|
createPingMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const std::string& transactionID = "")
|
|
{
|
|
return SharedHandle<DHTMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTMessage>
|
|
createPingReplyMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const unsigned char* remoteNodeID,
|
|
const std::string& transactionID)
|
|
{
|
|
return SharedHandle<DHTMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTMessage>
|
|
createFindNodeMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const unsigned char* targetNodeID,
|
|
const std::string& transactionID = "")
|
|
{
|
|
return SharedHandle<DHTMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTMessage>
|
|
createFindNodeReplyMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const std::deque<SharedHandle<DHTNode> >& closestKNodes,
|
|
const std::string& transactionID)
|
|
{
|
|
return SharedHandle<DHTMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTMessage>
|
|
createGetPeersMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const unsigned char* infoHash,
|
|
const std::string& transactionID)
|
|
{
|
|
return SharedHandle<DHTMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTMessage>
|
|
createGetPeersReplyMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const std::deque<SharedHandle<DHTNode> >& closestKNodes,
|
|
const std::string& token,
|
|
const std::string& transactionID)
|
|
{
|
|
return SharedHandle<DHTMessage>();
|
|
}
|
|
|
|
|
|
virtual SharedHandle<DHTMessage>
|
|
createGetPeersReplyMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const std::deque<SharedHandle<Peer> >& peers,
|
|
const std::string& token,
|
|
const std::string& transactionID)
|
|
{
|
|
return SharedHandle<DHTMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTMessage>
|
|
createAnnouncePeerMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const unsigned char* infoHash,
|
|
uint16_t tcpPort,
|
|
const std::string& token,
|
|
const std::string& transactionID = "")
|
|
{
|
|
return SharedHandle<DHTMessage>();
|
|
}
|
|
|
|
virtual SharedHandle<DHTMessage>
|
|
createAnnouncePeerReplyMessage(const SharedHandle<DHTNode>& remoteNode,
|
|
const std::string& transactionID)
|
|
{
|
|
return SharedHandle<DHTMessage>();
|
|
}
|
|
|
|
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_
|