/* */ #ifndef D_DHT_MESSAGE_DISPATCHER_H #define D_DHT_MESSAGE_DISPATCHER_H #include "common.h" #include #include "a2time.h" namespace aria2 { class DHTMessageCallback; class DHTMessage; class DHTMessageDispatcher { public: virtual ~DHTMessageDispatcher() {} virtual void addMessageToQueue(std::unique_ptr message, std::chrono::seconds timeout, std::unique_ptr callback = std::unique_ptr{}) = 0; virtual void addMessageToQueue(std::unique_ptr message, std::unique_ptr callback = std::unique_ptr{}) = 0; virtual void sendMessages() = 0; virtual size_t countMessageInQueue() const = 0; }; } // namespace aria2 #endif // D_DHT_MESSAGE_DISPATCHER_H