/* */ #ifndef D_DHT_MESSAGE_CALLBACK_H #define D_DHT_MESSAGE_CALLBACK_H #include "common.h" #include "SharedHandle.h" #include "DHTResponseMessage.h" namespace aria2 { class DHTNode; class DHTAnnouncePeerReplyMessage; class DHTFindNodeReplyMessage; class DHTGetPeersReplyMessage; class DHTPingReplyMessage; class DHTMessageCallback { public: virtual ~DHTMessageCallback() {} void onReceived(const SharedHandle& message) { message->accept(this); } virtual void visit(const DHTAnnouncePeerReplyMessage* message) = 0; virtual void visit(const DHTFindNodeReplyMessage* message) = 0; virtual void visit(const DHTGetPeersReplyMessage* message) = 0; virtual void visit(const DHTPingReplyMessage* message) = 0; virtual void onTimeout(const SharedHandle& remoteNode) = 0; }; } // namespace aria2 #endif // D_DHT_MESSAGE_CALLBACK_H