MockDHTMessageFactory.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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
  56. (const SharedHandle<DHTNode>& remoteNode,
  57. const std::vector<SharedHandle<DHTNode> >& closestKNodes,
  58. const std::string& transactionID)
  59. {
  60. return SharedHandle<DHTMessage>();
  61. }
  62. virtual SharedHandle<DHTMessage>
  63. createGetPeersMessage(const SharedHandle<DHTNode>& remoteNode,
  64. const unsigned char* infoHash,
  65. const std::string& transactionID)
  66. {
  67. return SharedHandle<DHTMessage>();
  68. }
  69. virtual SharedHandle<DHTMessage>
  70. createGetPeersReplyMessage
  71. (const SharedHandle<DHTNode>& remoteNode,
  72. const std::vector<SharedHandle<DHTNode> >& closestKNodes,
  73. const std::string& token,
  74. const std::string& transactionID)
  75. {
  76. return SharedHandle<DHTMessage>();
  77. }
  78. virtual SharedHandle<DHTMessage>
  79. createGetPeersReplyMessage(const SharedHandle<DHTNode>& remoteNode,
  80. const std::vector<SharedHandle<Peer> >& peers,
  81. const std::string& token,
  82. const std::string& transactionID)
  83. {
  84. return SharedHandle<DHTMessage>();
  85. }
  86. virtual SharedHandle<DHTMessage>
  87. createAnnouncePeerMessage(const SharedHandle<DHTNode>& remoteNode,
  88. const unsigned char* infoHash,
  89. uint16_t tcpPort,
  90. const std::string& token,
  91. const std::string& transactionID = "")
  92. {
  93. return SharedHandle<DHTMessage>();
  94. }
  95. virtual SharedHandle<DHTMessage>
  96. createAnnouncePeerReplyMessage(const SharedHandle<DHTNode>& remoteNode,
  97. const std::string& transactionID)
  98. {
  99. return SharedHandle<DHTMessage>();
  100. }
  101. virtual SharedHandle<DHTMessage>
  102. createUnknownMessage(const unsigned char* data, size_t length,
  103. const std::string& ipaddr, uint16_t port)
  104. {
  105. return SharedHandle<DHTMessage>();
  106. }
  107. void setLocalNode(const SharedHandle<DHTNode>& node)
  108. {
  109. _localNode = node;
  110. }
  111. };
  112. } // namespace aria2
  113. #endif // _D_MOCK_DHT_MESSAGE_FACTORY_H_