MockDHTMessageFactory.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. #ifndef _D_MOCK_DHT_MESSAGE_FACTORY_H_
  2. #define _D_MOCK_DHT_MESSAGE_FACTORY_H_
  3. #include "DHTMessageFactory.h"
  4. #include "DHTNode.h"
  5. #include "MockDHTMessage.h"
  6. #include "bencode.h"
  7. namespace aria2 {
  8. class MockDHTMessageFactory:public DHTMessageFactory {
  9. protected:
  10. SharedHandle<DHTNode> _localNode;
  11. public:
  12. MockDHTMessageFactory() {}
  13. virtual ~MockDHTMessageFactory() {}
  14. virtual SharedHandle<DHTMessage>
  15. createQueryMessage(const BDE& dict,
  16. const std::string& ipaddr, uint16_t port)
  17. {
  18. return SharedHandle<DHTMessage>();
  19. }
  20. virtual SharedHandle<DHTMessage>
  21. createResponseMessage(const std::string& messageType,
  22. const BDE& dict,
  23. const std::string& ipaddr, uint16_t port)
  24. {
  25. SharedHandle<DHTNode> remoteNode(new DHTNode());
  26. // TODO At this point, removeNode's ID is random.
  27. remoteNode->setIPAddress(ipaddr);
  28. remoteNode->setPort(port);
  29. SharedHandle<MockDHTMessage> m
  30. (new MockDHTMessage(_localNode, remoteNode, dict["t"].s()));
  31. m->setReply(true);
  32. return m;
  33. }
  34. virtual SharedHandle<DHTMessage>
  35. createPingMessage(const SharedHandle<DHTNode>& remoteNode,
  36. const std::string& transactionID = "")
  37. {
  38. return SharedHandle<DHTMessage>();
  39. }
  40. virtual SharedHandle<DHTMessage>
  41. createPingReplyMessage(const SharedHandle<DHTNode>& remoteNode,
  42. const unsigned char* remoteNodeID,
  43. const std::string& transactionID)
  44. {
  45. return SharedHandle<DHTMessage>();
  46. }
  47. virtual SharedHandle<DHTMessage>
  48. createFindNodeMessage(const SharedHandle<DHTNode>& remoteNode,
  49. const unsigned char* targetNodeID,
  50. const std::string& transactionID = "")
  51. {
  52. return SharedHandle<DHTMessage>();
  53. }
  54. virtual SharedHandle<DHTMessage>
  55. createFindNodeReplyMessage(const SharedHandle<DHTNode>& remoteNode,
  56. const std::deque<SharedHandle<DHTNode> >& closestKNodes,
  57. const std::string& transactionID)
  58. {
  59. return SharedHandle<DHTMessage>();
  60. }
  61. virtual SharedHandle<DHTMessage>
  62. createGetPeersMessage(const SharedHandle<DHTNode>& remoteNode,
  63. const unsigned char* infoHash,
  64. const std::string& transactionID)
  65. {
  66. return SharedHandle<DHTMessage>();
  67. }
  68. virtual SharedHandle<DHTMessage>
  69. createGetPeersReplyMessage(const SharedHandle<DHTNode>& remoteNode,
  70. const std::deque<SharedHandle<DHTNode> >& closestKNodes,
  71. const std::string& token,
  72. const std::string& transactionID)
  73. {
  74. return SharedHandle<DHTMessage>();
  75. }
  76. virtual SharedHandle<DHTMessage>
  77. createGetPeersReplyMessage(const SharedHandle<DHTNode>& remoteNode,
  78. const std::deque<SharedHandle<Peer> >& peers,
  79. const std::string& token,
  80. const std::string& transactionID)
  81. {
  82. return SharedHandle<DHTMessage>();
  83. }
  84. virtual SharedHandle<DHTMessage>
  85. createAnnouncePeerMessage(const SharedHandle<DHTNode>& remoteNode,
  86. const unsigned char* infoHash,
  87. uint16_t tcpPort,
  88. const std::string& token,
  89. const std::string& transactionID = "")
  90. {
  91. return SharedHandle<DHTMessage>();
  92. }
  93. virtual SharedHandle<DHTMessage>
  94. createAnnouncePeerReplyMessage(const SharedHandle<DHTNode>& remoteNode,
  95. const std::string& transactionID)
  96. {
  97. return SharedHandle<DHTMessage>();
  98. }
  99. virtual SharedHandle<DHTMessage>
  100. createUnknownMessage(const unsigned char* data, size_t length,
  101. const std::string& ipaddr, uint16_t port)
  102. {
  103. return SharedHandle<DHTMessage>();
  104. }
  105. void setLocalNode(const SharedHandle<DHTNode>& node)
  106. {
  107. _localNode = node;
  108. }
  109. };
  110. } // namespace aria2
  111. #endif // _D_MOCK_DHT_MESSAGE_FACTORY_H_